Android用户界面设计——关于布局的学习笔记

来源:互联网 发布:网络调查问卷赚钱 编辑:程序博客网 时间:2024/05/16 11:16

 

LinearLayout:

android:orientation 用来决定是垂直布局(vertical)还是水平布局(horizontal)

 

fill_parent即填满其父元素,当其为顶层元素时才会填满屏幕

 

wrap_content 类似于自动设置宽带(或高度),但是当即便填满整个父元素都不够的时候,则只能显示那么多,可以利用ScrollView解决

 

android:layout_weight 视图的权重值,默认为0。如果三个view横列,前两个view的wieght是1,第三个是默认值0。可见第三个view的权weight最低,那么第三个view就只会占用自己内容所需的宽度,剩下的宽度会被前两个view平分。


android:gravity与android:layout_gravity区别

android:gravity表示其子组件在其的位置

android:layout_gravity表示自身在其父组件中的位置

一个通俗的例子,前者用来表示你房子里各个家具(组件)的位置;而后者是表示你房子在镇上的位置。

 

AbsoluteLayout:

需要指定具体的位置坐标,实际中很少使用

 

RelativeLayout:

推荐阅读

较灵活,但是要注意防止冲突

 

一些RelativeLayout用到的一些重要的属性:

第一类:属性值为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                      本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft                      本元素的左边缘和某元素的的左边缘对齐
android:layout_alignBottom                 本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight                    本元素的右边缘和某元素的的右边缘对齐

第三类:属性值为具体的像素值,如30dip(关于dip解释见这里),40px
android:layout_marginBottom              离某元素底边缘的距离
android:layout_marginLeft                   离某元素左边缘的距离
android:layout_marginRight                 离某元素右边缘的距离
android:layout_marginTop                   离某元素上边缘的距离

 

TableLayout:

一个TableLayout由许多TableRow组成,而每个TableRow只会定义一个Row。TableLayout不会显示每个Row、Column或Cell的边框线。每个Row有0或多个Cell,每个Cell有一个View对象。

单元格可为空,但是不能跨列。

 

collapseColumns – 设置隐藏哪些列,列ID从0开始,多个列的话用”,”分隔

stretchColumns – 设置自动伸展哪些列,列ID从0开始,多个列的话用”,”分隔(即尽量把指定的列填充空白部分)

shrinkColumns -设置自动收缩哪些列,列ID从0开始,多个列的话用”,”分隔(当控件没有布满时,不会收缩)

可以用”*”来表示所有列,同一列可以同时设置为shrinkable和stretchable。

参考

 

FrameLayout

类似于PS中的图层,相互叠加

这些层的顺序是:最新声明的放到最前面。

 

 

最后,强烈推荐,对于UI设计可以使用工具DroidDraw,详情点击这里