Android中的布局
布局文件的创建
创建布局文件之前我们需要知道布局文件具体的位置,如下图
那具体如何进行创建,在
layout---->new----->LayoutResourceFile
File name
布局文件的文件名
Root elenment
布局类型,如:
linearlayout、Relativelayout、FrameLayout、TableLayout、absolutelayout
1.线性布局(linearlayout)
线性布局是指子控件以水平或垂直方式排列
android:orientation为horizonal,表示的是水平布局,顶部,底部,水平居中生效
android:orientation为vertical,表示的是垂直布局,左右对齐,垂直居中生效
另如果使用以下方法
android:layout_weight = "1"//表示按比例分配剩余宽度,称为权重
android:layout_width = "0dp"//水平布局使用该方法
如果是垂直布局使用以下方法
android:layout_weight = "1"//表示按比例分配剩余宽度,称为权重
android:layout_height = "0dp"//垂直布局使用该方法
举例:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/textview_id"
android:text="@string/textview_id"/>
</LinearLayout>
2.相对布局(Relativelayout)
默认的是顶部左对齐,没有方向,故没有android:orientation,并无权重的概念
几个常用的方法如下:
android:id = “@+id/tv4”//定义一个id
android:layoout_toRightof = "@id/tv3"//引用一个id
android:layout_centerInParent = "true"//水平垂直都居中
android:layout_above = “@id/tv2” //引用id,表示在tv2之上
android:layout_alignleft = “@id/tv2”//与tv2左对齐
相对布局是子控件以控件之间的相对位置或子类控件相对于父容器的位置排列
- 相对于父容器的位置属性
android:layout_alignParentBottom(在父容器最下,true或false)
android:layout_alignParentTop(在父容器最上)
android:layout_alignParentLeft(在父容器最左)
android:layout_alignParentRight(在父容器最右)
android:layout_marginTop(和父容器上端的距离,单位dp)
android:layout_marginBottom(和父容器下端的距离)
android:layout_marginLeft(和父容器左端的距离)
android:layout_marginRight(和父容器右端的距离)
android:layout_margin(和父容器四周的距离)
android:layout_centerVertical(在父类的垂直居中,true或false)
android:layout_centerHorizontal(在父类的水平居中)
android:layout_centerInParent(在父类的水平垂直居中)
- 相对于控件的位置属性
android:layout_below(位于某控件下方,以id标记)
android:layout_above(位于某控件上方)
android:layout_toLeftOf(位于某控件左方)
android:layout_toRightOf(位于某控件右方)
android:layout_alignBottom(与某控件底部对齐,以id标记)
android:layout_alignTop(与某控件顶部对齐)
android:layout_alignLeft(与某控件左边缘对齐)
android:layout_alignRight(与某控件右边缘对齐)
android:layout_alignBaseline(与某控件的文本内容在一条直线上)
3.帧布局(FrameLayout)
默认是左上角对齐,帧布局相当于一个TestView,常用的方法如下:
android:layout_gravity = "center"
4.表格布局(TableLayout)
不用指定宽和高
<tablelayout
<tableRow
//行
/>
<TestView
//列
/>
/>
5.绝对布局(absolutelayout)
指定x,y坐标,一般用的比较少,在电视这块会用到