Android常用五种布局
1. FrameLayout(框架布局)
这个布局可以看成是墙脚堆东西,有一个四方的矩形的左上角墙脚,我们放了第一个东西,要再放一个,那就在放在原来放的位置的上面,这样依次的放,会盖住原来的东西。这个布局比较简单,也只能放一点比较简单的东西
类似网页中的div层
2. LinearLayout (线性布局)
线性布局,他是一个一个从上往下罗列在屏幕上
每一个LinearLayout里面又可分为垂直布局(android:orientation=”vertical”)和水平布局(android:orientation=”horizontal” )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列
android:layout_width表示控件的宽度,android_layout_height表示控件的高度,其属性值有wrap_content、fill_parent、match_parent三种。其中,wrap_content表示填满父控件的空白,fill_parent表示大小刚好足够显示当前控件里的内容,match_parent与fill_parent作用是相同的
linearLayout中有一个重要的属性 android:layout_weight=”1”,这个weight在垂直布局时,代表行距;水平的时候代表列宽;weight值越大就越大
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center" //按钮中text的位置
android:background="#00aa00"
android:text="Button" />
3. AbsoluteLayout(绝对布局)
绝对布局犹如div指定了absolute属性,用X,Y坐标来指定元素的位置android:layout_x=”20px”
android:layout_y=”12px” 这种布局方式也比较简单,但是在垂直随便切换时,往往会出问题,而且多个元素的时候,计算比较麻烦
4. RelativeLayout(相对布局)
相对布局可以理解为某一个元素为参照物,来定位的布局方式。主要属性有:
相对于某一个元素
android:layout_below=”@id/aaa” 该元素在 id为aaa的下面
android:layout_toLeftOf=”@id/bbb” 该元素的左边是bbb
相对于父元素的地方
android:layout_alignParentLeft=”true” 在父元素左对齐
android:layout_alignParentRight=”true” 在父元素右对齐
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/input_num"
android:id="@+id/textView1" /> //需要添加一个id,以被引用
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@id/textView1" /> //相对id的布局
5. TableLayout(表格布局)
表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素,设定他的对齐方式 android:gravity=”“
6. LinearLayout和TableLayout常用指令
android:id——控件指定相应ID
android:text——控件中显示文字。注意尽量使用Strings.xml
android:gravity——控件中文字基本位置,如center、left、right、center_horizontal等
android:textsize——控件中字体大小,单位为pt
android:background——控件背景色
android:width——控件宽度
android:height——控件高度
android:padding——空间内边距,指控件当中内容到空间的距离。其中有android:padding_left、android:padding_right等
android:siglelise——如果设置为真,控件内容将在同一行显示
android:margin——外边距
7. Relative Layout常用指令
属性值为true或false
android:layout_centerHrizontal 是否至于水平方向中央
android:layout_centerVertical 是否至于垂直方向中央
android:layout_centerInparent 至于父控件水平/垂直方向中央
android:layout_alignParentBottom 是否与父控件下边对齐
android:layout_alignParentLeft 是否与父控件的左边对齐
android:layout_alignParentRight 是否与父控件的右边对齐
android:layout_alignParentTop 是否与父控件的上边对齐
android:layout_alignWithParentIfMissing属性值必须为id的引用名“@id/id-name”
android:layout_below 在某某上面
android:layout_above 在某某下面
android:layout_toLeftOf 将控件左边缘至于给定控件的右边
android:layout_toRightOf 将控件右边缘至于给定控件的左边
android:layout_alignTop 将控件的顶部与给定控件顶部对奇属性值为具体的像素值,如30dip,40px
android:layout_marginBottom 与下边的距离
android:layout_marginLeft 与左边的距离
android:layout_marginRight 与右边的距离
android:layout_marginTop 与上边的距离
8. android 尺寸
- px (pixels)像素
- dip或dp (device independent pixels)设备独立像素
和设备硬件有关 - sp (scaled pixels — best for text size)比例像素
主要处理字体的大小,可以根据系统的字体自适应