Android基本布局
Android基本布局
布局是一种可用于放置很多控件的容器,它可以按照一定的规律调整内部控件的位置,从而编写出精美的界面。
LinearLayout(线性布局)
所包含的控件在线性方向上依次排列
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:text="Button 1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Button 2" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="bottom"
android:text="Button 3" />
</LinearLayout>
android:orientation:排列方向,horizontal(水平排列)、vertical(纵向排列)。
android:layout_gravity:指定控件在布局中的对齐方式。
android:layout_weight:用比例的方式来指定控件的大小。
RelativeLayout(相对布局)
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="Button 1" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:text="Button 2" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:text="Button 3" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:text="Button 4" />
<Button
android:id="@+id/button5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:text="Button 5" />
</RelativeLayout>
android:layout_alignParentTop:与父布局的顶边对齐
android:layout_alignParentLeft:与父布局的左边对齐
android:layout_alignParentRight:与父布局的右边对齐
android:layout_alignParentBottom:与父布局的底边对齐
android:layout_centerInParent:与父布局的中间对齐
android:layout_above=”@id/button1″ :让这个控件位于另一个控件(button1)的上方
android:layout_below=”@id/button1″ :让这个控件位于另一个控件(button1)的下方
android:layout_toLeftOf=”@id/button1“:让这个控件位于另一个控件(button1)的左侧
android:layout_toRightOf=”@id/button1″:让这个控件位于另一个控件(button1)的右侧
android:layout_alignLeft=”@id/button1″:让这个控件的左边缘和另一个控件(button1)的左边缘对齐
android:layout_alignRight=”@id/button1″:让这个控件的右边缘和另一个控件(button1)的右边缘对齐
android:layout_alignTop=”@id/button1″:让这个控件的上边缘和另一个控件(button1)的上边缘对齐
android:layout_alignBottom=”@id/button1″:让这个控件的下边缘和另一个控件(button1)的下边缘对齐
FrameLayout(帧布局)
这种布局没有方便的定位方式,所有的控件都会默认摆放在布局的左上角。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="This is TextView"
/>
<ImageView
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@mipmap/ic_launcher"
/>
</FrameLayout>
文字和图片都是位于布局的左上角。由于ImageView是在TextView之后添加的,因此图片压在了文字的上面。