xml布局文件中的配置
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > … </ LinearLayout >常用属性:
确定LinearLayout的方向:android:orientation=“属性” vertical: 表示垂直布局 horizontal: 表示水平布局 *注:垂直布局全部为垂直方向,水平布局全部为水平方向
垂直布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <TextView android:layout_width="50dp" android:layout_height="50dp" android:layout_marginRight="10dp" android:layout_marginBottom="10dp" android:background="#00ff00" /> <TextView android:layout_width="50dp" android:layout_height="50dp" android:layout_marginRight="10dp" android:layout_marginBottom="10dp" android:background="#00ff00" /> <TextView android:layout_width="50dp" android:layout_height="50dp" android:layout_marginRight="10dp" android:layout_marginBottom="10dp" android:background="#00ff00" /> </LinearLayout>水平布局:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <TextView android:layout_width="50dp" android:layout_height="50dp" android:layout_marginRight="10dp" android:layout_marginBottom="10dp" android:background="#00ff00" /> <TextView android:layout_width="50dp" android:layout_height="50dp" android:layout_marginRight="10dp" android:layout_marginBottom="10dp" android:background="#00ff00" /> <TextView android:layout_width="50dp" android:layout_height="50dp" android:layout_marginRight="10dp" android:layout_marginBottom="10dp" android:background="#00ff00" /> </LinearLayout>宽度和高度:
layout_width 代表此组件布局的宽度 fill_parent: 则会填满parent的宽度 wrap_content:则组件宽度会依照内容大小而调整 android:layout_height 代表此组件布局的高度 fill_parent: 则会填满parent的宽度 wrap_content:则组件宽度会依照内容大小而调整
margin外边框:
layout_margin 指定这个view距离上下左右的额外距离 android: layout_marginBottom 指定这个view距离下方的额外距离 android: layout_marginLeft 指定这个view距离左方的额外距离 android: layout_marginRight 指定这个view距离右方的额外距离 android: layout_marginTop 指定这个view距离上方的额外距离
xml布局文件的配置
<RelativeLayout xmlns:android=http://schemas.android.com/apk/res/android android:layout_width="fill_parent" android:layout_height="fill_parent" > </RelativeLayout>常用属性
android:layout_above 置于目标id组件的上方 android:layout_alignBaseline 置于与目标id组件同样的基线上 android:layout_alignBottom 让自己的下边界与目标id组件的下边界在同一个位置 android:layout_alignLeft 让自己的左边界与目标id组件的左边界在同一位置 android:layout_alignParentBottom 若为true,让自己的下边界与Parent的下边界同位置 android:layout_alignParentLeft 若为true,让自己的左边界与Parent的左边界同位置 android:layout_alignParentRight 若为true,让自己的右边界与Parent的右边界同位置 android:layout_alignParentTop 若为true,让自己的上边界与Parent的上边界同位置 android:layout_alignRight 让自己的右边界与目标id组件的右边界在同一位置 android:layout_toLeftOf/toRightOf 置于目标id组件的左方/右方 android:layout_alignTop 让自己的上边界与目标id组件的上边界在同一个位置 android:layout_alignWithParentIfMissing 若设为true,当参考的目标id不可用时,会以Parent为参考目标 android:layout_below 置于目标id组件的下方 android:layout_centerHorizontal 若为true,置于Parent水平位置的中心 android:layout_centerInParent 若为true,置于Parent水平以及垂直位置的中心 android:layout_centerVertical 若为true,置于Parent垂直位置的中心
两个布局方式是最为常用的布局方式,需要熟记并且熟用,下为两个布局方式混合使用的例子
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:background="#323232" tools:context=".MainActivity" > <LinearLayout android:id="@+id/ll" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerInParent="true" android:layout_marginLeft="20dp" android:layout_marginRight="20dp" android:orientation="vertical" > <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginBottom="10dp" android:background="#FFFFFF" > <!-- 文本输入框 --> <!-- 控件一旦将背景设置成@null或透明颜色 --> <!-- hint:提示性信息 --> <EditText android:layout_width="match_parent" android:layout_height="30dp" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="#00000000" android:hint="username or E-mail" android:singleLine="true" /> </RelativeLayout> <!-- App中用于装饰的线条,我们可以用View组件,没有任何实际意义 --> <View android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#535353" /> <RelativeLayout android:layout_width="match_parent" android:layout_height="50dp" android:layout_marginBottom="10dp" android:background="#FFFFFF" > <!-- 文本输入框 --> <!-- 控件一旦将背景设置成@null或透明颜色 --> <!-- hint:提示性信息 --> <EditText android:layout_width="match_parent" android:layout_height="30dp" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" android:background="#00000000" android:hint="·········" android:inputType="textPassword" android:singleLine="true" /> </RelativeLayout> </LinearLayout> <ImageView android:layout_width="250dp" android:layout_height="150dp" android:layout_above="@id/ll" android:layout_centerHorizontal="true" android:layout_marginBottom="80dp" android:src="@drawable/logo" /> <TextView android:layout_width="match_parent" android:layout_height="20dp" android:layout_above="@id/ll" android:layout_marginBottom="80dp" android:gravity="center" android:text="Sign in" android:textColor="#FFFFFF" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/btn_r" android:layout_alignRight="@id/ll" android:layout_below="@id/ll" /> <ImageView android:layout_width="50dp" android:layout_height="50dp" android:layout_below="@id/ll" android:layout_centerHorizontal="true" android:layout_marginTop="130dp" android:src="@drawable/box" /> <TextView android:layout_width="200dp" android:layout_height="30dp" android:layout_below="@id/ll" android:layout_centerHorizontal="true" android:layout_marginTop="180dp" android:gravity="center" android:text="Forget Password?" android:textColor="#FFFFFF" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:background="@drawable/btn_l" android:layout_alignBaseline="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_alignLeft="@+id/ll" /> </RelativeLayout> <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/l"></item> </selector> <?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/r"></item> </selector>*注: 其中两个按钮是两张图片,是使用selector资源文件定义