安卓开发的第一步就是在res/layout文件夹下写UI布局(有些用java写的动态布局除外,规则是:当混合使用xml布局文件和代码来控制UI界面时,习惯把变化小,行为较为固定的组件放在xml布局中管理,把那些变化行为多且复杂的组件交给java代码去控制)。下面我们来看看各种布局的使用方法和应用场景。(开发者通过拖拽及每个对象的属性设置就可以完成90%以上UI设计工作)
一,线性布局(LinearLayout)
这种布局方式是最常见的一种,有点像Swing编程的Box,就是每个组件是按照线性从前到后或者从上到下的方向逐个排列的(注意:线性布局不会换行,当组件一个一个排满之后,剩下的组件将不会被显示出来),这种布局适合上下,左右对齐的相同数量组件以表格方式布局的情况。 通常采用多重嵌套的方式实现更为灵活的布局方式,即第一层采用纵向排列,第二层采用横向排列等等,单击其中任何一个LinearLayout,然后通过设置orientation属性改变其排列方向为横向还是纵向,就能够改变位于该layout内的组件的排列方式,再通过设置每个组件的属性(Properties)就能够改变这个组件在这个Layout中的对齐方式。
LinearLayout常用xml属性及相关方法
xml属性
android:baselineAligned //是否与他的子元素的基线对齐
android:divider //设置垂直布局时两个按钮之间的分隔条
android:gravity //设置组件的对齐方式
android:orientation //设置组件的排列方式,默认为垂直
相关方法
setBaselineAligned // 返回值类型(boolean)
setDividerDrawable //<span style="font-family: Arial, Helvetica, sans-serif;">返回值类型</span>(Drawable)
setGravity //<span style="font-family: Arial, Helvetica, sans-serif;">返回值类型</span><span style="font-family: Arial, Helvetica, sans-serif;">(int)</span>
setOrinentation //<span style="font-family: Arial, Helvetica, sans-serif;">返回值类型</span><span style="font-family: Arial, Helvetica, sans-serif;">(int)</span>
LinearLayout子元素常用xml属性
xml属性
android:layout_gravity //指定该子元素在LinearLayout中的对齐方式
android:layout_weight //指定该子元素在LinearLayout中所占的权重
二,相对布局(RelativeLayout)
相对布局允许子元素指定他们相对于其父元素或其他兄弟元素的位置。容器容器内子组件的位置总是相对的。这个布局是实际布局中最常见的布局的一种。
常见的XML属性
Android:gravity //设置该布局容器内子组件的对齐方式
Android:igonreGravity //设置哪个组件不受gravity属性的影响
一类:属性值为true或false
android:layout_alignParentLeft // 贴紧父元素的左边缘
android:layout_alignParentRight //贴紧父元素的右边缘
android:layout_alignParentTop // 贴紧父元素的上边缘
android:layout_alignParentBottom // 贴紧父元素的下边缘
android:layout_alignWithParentIfMissing // 对应的兄弟元素找不到就以父元素做参照物
android:layout_centerInparent // 相对于父元素完全居中
android:layout_centerHrizontal //水平居中
android:layout_centerVertical //垂直居中
二类:属性值必须为id的引用名“@id/id-name”
android:layout_toRightOf //在某元素的右边
android:layout_toLeftOf //在某元素的左边
android:layout_alignTop //本元素的上边缘和某元素的的上边缘对齐
android:layout_alignLeft // 本元素的左边缘和某元素的的左边缘对齐
android:layout_below // 在某元素的下方
android:layout_above // 在某元素的的上方
android:layout_alignBottom //本元素的下边缘和某元素的的下边缘对齐
android:layout_alignRight // 本元素的右边缘和某元素的的右边缘对齐
三类:属性值为具体的像素值,如10dip,30px
android:layout_marginTop // 离某元素上边缘的距离
android:layout_marginBottom // 离某元素底边缘的距离
android:layout_marginLeft //离某元素左边缘的距离
android:layout_marginRight // 离某元素右边缘的距离
注意:四大组件创建后都需要在AndroidManifest.xml文件中声明才能被调用,所以写好UI布局之后记得在AndroidManifest.xml文件之中声明。