`
runfeel
  • 浏览: 935731 次
文章分类
社区版块
存档分类
最新评论

Android中的布局方式(二)

 
阅读更多

Android中的布局方式(二)

3TableLayout表格布局

TableLayout以行和列的方式排列子控件,但它不会显示行和列的边界线。在TableLayout中使用TableRow对象来定义多行。

重要属性介绍:

android:stretchColumns=”1” // 表示在有剩余空间的情况下,第2列可以拉伸

android:shrinkColumns=”1” // 空间不够时,第2列可以被压缩

android:collapseColumns=”1” // 2列不显示

在前面我们用LinearLayout来搭建了一个简易的登录窗口,这里准备用TableLayout也来搭一个,运行截图如下:

XML布局文件如下:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TableLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:collapseColumns="2"

android:stretchColumns="1">

<TableRow android:id="@+id/tr1"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

<TextView android:id="@+id/tv1"

android:layout_width="90dip"

android:layout_height="wrap_content"

android:text="用户名:"/>

<EditText android:id="@+id/et1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:maxLines="1"/>

</TableRow>

<TableRow android:id="@+id/tr2"

android:layout_width="fill_parent"

android:layout_height="wrap_content">

<TextView android:id="@+id/tv2"

android:layout_width="90dip"

android:layout_height="wrap_content"

android:text="密码:"/>

<EditText android:id="@+id/et2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:maxLines="1"

android:password="true"/>

</TableRow>

</TableLayout>

<!-- 下面的两个按钮用LineaerLayout来布局,和前例一样 -->

<LinearLayout

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_marginTop="5dip"

android:orientation="horizontal">

<Button android:id="@+id/btn1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=" 登录 "

android:layout_marginLeft="160dip"/>

<Button android:id="@+id/btn2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text=" 取消 "

android:layout_marginLeft="27dip"/>

</LinearLayout>

</LinearLayout>

4RelativeLayout相对布局

相对布局可以让子控件根据其父控件或者它们之间的相对位置来决定自己的显示位置。比如有A控件,然后B控件可以指定说在A控件右边显示,后面的C可以指定说在B控件的下边显示等等,下面用一个简单的示例来说明问题。

运行截图:

XML布局文件为:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<AnalogClock android:id="@+id/analog_clock"

android:layout_width="wrap_content"

android:layout_height="wrap_content"/>

<TextView android:id="@+id/tv1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="当前时间为:03-43-00"

android:background="#0000CC"

android:layout_marginLeft="15dip"

android:layout_below="@id/analog_clock"/>

<EditText android:id="@+id/et1"

android:layout_width="120dip"

android:layout_height="wrap_content"

android:layout_toRightOf="@id/analog_clock"

android:layout_margin="20dip"

android:hint="Set time."/>

<Button android:id="@+id/btn1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="确定"

android:layout_below="@id/et1"

android:layout_alignRight="@id/et1"/>

<Button android:id="@+id/btn2"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="取消"

android:layout_toLeftOf="@id/btn1"

android:layout_alignTop="@id/btn1"

android:layout_marginRight="20dip"/>

</RelativeLayout>

5AbsoluteLayout绝对布局

这种布局方式是我们需要用具体的坐标才能定位控件,其实这种方式不就是我们原来常用的嘛。还记得原来在TC中,文本模式下,愣是用gotoxy来搭界面,累死人,还达不到预设的效果-_-!,翻翻看,看能否找到:

android中通过设置android:layout_xandroid:layout_y来定位。注意:这中刚性布局屏幕适应性不是很好,一个设备上运行得还可以,可能到另外一台设备上就是乱码了。下面是一个简单的示例:

XML文件内容如下:

<?xml version="1.0" encoding="utf-8"?>

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView android:id="@+id/tv1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我起始于(140, 10) (dip)"

android:background="#123456"

android:layout_x="140dip"

android:layout_y="10dip"/>

<Button android:id="@+id/btn1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="我起始于(10, 40) (dip)"

android:layout_x="10dip"

android:layout_y="40dip"/>

</AbsoluteLayout>

小结:在实际情况中,若想界面达到良好的效果,通常需要嵌套使用布局方式,不然就会显得单调。接下来就留由大家去探索了。

分享到:
评论

相关推荐

    IOS-类似Android的布局方式

    在iOS开发中,尽管苹果提供了其独特的Auto Layout系统来实现界面布局,但有时开发者可能会觉得它的学习曲线较陡峭,或者对于熟悉Android布局的人来说不够直观。"IOS-类似Android的布局方式"是一个针对这种情况的解决...

    Android 五大布局方式详解

    Android中常用的5大布局方式有以下几种: 线性布局(LinearLayout):按照垂直或者水平方向布局的组件。 帧布局(FrameLayout):组件从屏幕左上方布局组件。 表格布局(TableLayout):按照行列方式布局组件。 ...

    Android 相对布局实例

    在Android开发中,布局管理器是构建用户界面的关键部分,其中相对布局(RelativeLayout)是一种常见的布局方式。相对布局允许我们根据各个视图之间的相对位置来安排它们,这为设计复杂且灵活的用户界面提供了可能。...

    android布局_Android布局_android_

    本文将深入探讨Android布局的各种类型及其使用方法,旨在帮助开发者更好地理解和掌握Android应用的UI设计。 首先,我们来了解Android中的基本布局类型: 1. **线性布局(LinearLayout)**:这是最基础的布局,它...

    android 中页面布局使用demo

    下面我们将详细探讨Android布局及其在实际应用中的使用。 Android支持多种布局管理器,每种都有其特定的用途: 1. **线性布局(LinearLayout)**:这是最基础的布局,可以将子视图水平或垂直排列。通过设置`...

    Android xml布局文件生成工具

    在Android应用开发中,XML布局文件是构建用户界面(UI)的主要方式,它允许开发者以声明式编程的方式定义UI元素的结构和样式。"Android xml布局文件生成工具"是为了解决手动编写XML布局文件繁琐和耗时的问题而设计的...

    android界面布局详解

    在Android开发中,界面布局是构建用户界面的关键部分。它决定了应用中各个组件的位置和排列方式,从而影响用户体验。本文将深入探讨Android界面布局的各个方面。 1、用户界面及视图层次 Android用户界面主要由View...

    AndroidXML布局属性详解

    Android XML 布局属性可以分为三类:第一类是属性值为 true 或 false 的布局属性,第二类是属性值必须为 id 的引用名的布局属性,第三类是属性值为具体的像素值的布局属性。 第一类:属性值为 true 或 false 的...

    认识Android布局文件

    理解Android布局文件的使用是开发过程中必不可少的技能。通过LinearLayout,我们可以创建简单的线性布局,控制控件的排列方式和大小。随着学习的深入,还可以探索更复杂的布局容器,如RelativeLayout、...

    android常用布局的使用

    在约束布局中,每个视图都可以关联到其他视图的边缘,中心,或其他特性,如`app:layout_constraintTop_toBottomOf`,`app:layout_constraintStart_toEndOf`等。 七、滚动布局(ScrollView)与嵌套滚动布局...

    android Activity布局初步(二)- 嵌套布局

    在"android Activity布局初步(二)- 嵌套布局"这篇博文中,作者可能介绍了如何在一个布局文件中包含另一个布局,从而实现视图的层次结构。这种技术被称为嵌套布局,可以创建具有多个视图组(如LinearLayout、...

    android框架布局的使用

    2. android:layout_gravity:用于设置视图在布局中的对齐方式。可选值有 top, bottom, left, right, center_vertical, center_horizontal, center。 三、使用示例 在XML布局文件中,你可以这样创建一个FrameLayout...

    Android中使用RelativeLayout完成梅花布局的代码清单.pdf

    2. 第二个`&lt;TextView&gt;`是中心组件,id为"@+id/textView1",它的背景使用了`@drawable/bg1`资源,设置为`android:layout_centerInParent="true"`使其位于布局的中心。 3. 第三个`&lt;TextView&gt;`,id为"@+id/textView2...

    Android页面布局总结

    错误地将这些属性应用到不支持它们的布局中可能导致无效的结果。 2. **宽度和高度**:`android:layout_width`和`android:layout_height`这两个属性用于指定视图的大小。`wrap_content`用于使视图的大小适应其内容...

    Android 绝对布局的使用

    除了在XML中预先定义,你也可以在代码中动态添加子视图到绝对布局中: ```java AbsoluteLayout absoluteLayout = findViewById(R.id.absolutelayout); Button button1 = new Button(this); button1.setText("Button...

    android框架布局demo

    在Android开发中,布局...通过下载并研究"android框架布局demo",你将有机会亲手实践这些概念,进一步加深对Android布局管理的理解,并提高你的应用开发技能。记得不断探索和尝试,让自己的应用界面更加精美和高效。

    android排版布局属性

    在Android应用开发中,布局是构建用户界面的关键环节,它决定了控件的排列方式和外观。其中,相对布局(RelativeLayout)是一种常用的布局方式,通过定义控件之间的相对位置,可以灵活地调整界面元素的布局。以下是...

    Android 显示/隐藏 布局

    在Android开发中,布局管理是应用界面设计...这些方法提供了一种更为动态和灵活的方式来控制Android布局的可见性,使得应用的交互更加丰富和有趣。在实际开发中,应根据应用场景选择合适的方法,以实现最佳的用户体验。

    Android卡片布局实现

    除了基本属性外,还可以自定义CardView的颜色、大小、阴影等,通过在主题中定义`cardViewStyle`或者直接在XML布局中设置。 5. **交互处理**: 卡片上的操作可以通过监听事件来处理,例如点击事件。在Activity或...

    Android开发——布局方式Demo源码

    Android布局详解实例,包含:线性布局(LinearLayout)、相对布局(RelativeLayout)、帧布局(FrameLayout)、表格布局(TableLayout)四大布局方式的demo

Global site tag (gtag.js) - Google Analytics