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

    技术2024-11-02  22

     

    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或falseandroid: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解释见这里),40pxandroid: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,详情点击这里

     

     

     

     

    最新回复(0)