UI布局

来源:互联网 发布:记录销售app软件 编辑:程序博客网 时间:2024/05/01 03:27

所有UI组件都称为View
- 一个显示数据的组件。
- 用于容纳组件的组件
- 是一个单独的组件(比如一个按钮),或者是一个容器
(比如一个可以容纳其它组件的布局)

在android开发中使用的数据单位:

  • px:像素点(不建议使用)
  • in:英寸(不建议使用)
  • mm:毫米(不建议使用)
  • pt:磅(不建议使用)
  • dp(dip):与密度无关的像素,在密度160dp的屏幕上,1dp=1px,320密度的屏幕上
    1dp=2px(推荐)
  • sp:与密度无关的字体大小(推荐)

2、UI布局

Android为我们提供了6种布局组件,布局实际上就是容器,内部可以包含其它任意组件或布局
在实际开发中,我们需要注意的是:使用更少的布局嵌套有利于提高界面的渲染效率。

(1)LinearLayout(线性布局:以垂直或水平方向布局组件)、
公共属性:
设置组件的宽度高度(宽高是每个组件必须设置的属性),有两种设置方式:

<1>使用常量(match_parent 匹配父组件,wrap_content 包裹内容,fill__parent填充        父组件,在API8之前使用,与match_parent作用一样)<2>使用具体的值:比如 120dpandroid:layout_width="match_parent"android:layout_height="match_parent"//给组件添加ID:有就引用,没有就添加,会在R文件中生成对应的ID索引android:id="@+id/linearLayout1"android:paddingBottom="16dp"  表示设置内间距的下边android:paddingLeft="16dp"    表示设置内间距的左边android:paddingRight="16dp"   表示设置内间距的右边android:paddingTop="16dp"   表示设置内间距的上边或者直接使用:android:padding="16dp" 表示设置内间距的上下左右android:layout_marginBottom="16dp" 表示设置外边距的下边android:layout_marginEnd="16dp"  表示设置外边距的右边android:layout_marginStart="16dp"  表示设置外边距的左边android:layout_marginTop="16dp"  表示设置外边距的上边android:layout_margin="16dp"  表示设置外边距设置背景颜色(引用color.xml定义的,#fff,#00ff00,#ff00ff00)#ARGB(A透明度,R红色值,G绿色值,B蓝色值)android:background="#fff"android:layout_gravity="center"   组件相对于父组件的位置android:gravity="center"    组件本身内部的内容的位置特有属性:android:orientation="horizontal"  设置为水平方向android:orientation="vertical"      设置为垂直方向android:layout_weight="1"           设置权重(比例): 在linearLayout内的所有组件的权重总和作为比例的总数,layout_weight设置为多少表示所占的权重比例,当只有一个组件设置了layout_weight时,表示其它组件占用的大小后剩下的空间都被该组件占用。

(2)RelativeLayout:相对布局

此布局在实际开发中建议使用,原因是使用RelativeLayout可以非常方便的实现复杂的布局而减少布局的嵌套,来提高布局的性能。属性参考PPT

(3)TableLayout:表格布局(了解,开发中不常使用)

使用TabRow来定义表格的一行,在TabRow内的每个组件表示一行中的一列。tabLayout中使用:android:stretchColumns="1" 表示第1列拉伸列的组件中使用:layout_column="0"  表示组件在第几列列的组件中使用:android:layout_span="2" 表示当前组件占用2列(合并)

(4)FrameLayout 帧布局

组件在布局中以层叠的方式出现,默认在左上角位置,后面的组件会覆盖前面的组件。我们可以使用android:layout_gravity="left|top" 来指定相对位置,left|top 表示左上角通常在实际应用中:我们使用FrameLayout实现多个布局之间的交替显示设置组件是否可示:gone 不显示不占位置,visible 显示,invisible 不显示占位置android:visibility="gone" 

(5)AbsoluteLayout:绝对布局

不推荐使用,已被废弃,使用绝对坐标来布局组件。

(6)GridLayout :网格布局

android 4.0以后新增的布局,API14以上,用于实现网格布局,我们可以使用以下属性设置:android:layout_row="0"         在网格中的位置是第0行android:layout_column="0"   在网络中的位置是第0列android:layout_rowSpan="2"  合并两行为一行android:layout_columnSpan="2"   合并两列为一列android:layout_gravity="fill_vertical"  填充方式为垂直或水平
0 0