Android布局管理器学习笔记(实例)

android提供了五种布局管理器
(1)相对布局管理器(RelativeLayout)通过相对定位的方式来控制组件的摆放位置

XML属性 描述
android:gravity 用于设置布局管理器中各子组件的对齐方式
android:ignoreGravity 用于指定哪个组件不受gravity属性的影响

子组件的属性略

<?xml version="1.0" encoding="utf-8"?>
<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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@mipmap/bg"
    tools:context="com.mingrisoft.MainActivity" >

    <!-- 添加一个居中显示的文本视图textView1 -->
    <TextView android:text="发现有Widget的新版本,您想现在就安装吗?"
        android:id="@+id/textView1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerInParent="true"
        />

    <!-- 添加一个按钮button2,该按钮与textView1的右边界对齐 -->
    <Button
        android:text="以后再说"
        android:id="@+id/button2"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignRight="@id/textView1"
        android:layout_below="@id/textView1"
        />
    <!-- 添加一个在button2左侧显示的按钮button1 -->
    <Button
        android:text="现在更新"
        android:id="@+id/button1"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_below="@id/textView1"
        android:layout_toLeftOf="@id/button2"
        />
</RelativeLayout>

在这里插入图片描述
(2)线性布局管理器(LinearLayout)是指在垂直或者水平的方向依次摆放组件

XML属性 描述
android:orientation 组件的排列方式,有horizontal和vertical
android:gravity 组件的显示位置
android:layout_width 组件的基本宽度
android:layout_height 组件的基本高度
android:id 用于为当前组件指定一个id属性
android:background 背景
<?xml version="1.0" encoding="utf-8"?>
<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"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="mingrisoft.com.MainActivity">

    <!--第一行-->
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="20dp"
        android:hint="QQ号/微信号/Email"
        android:drawableLeft="@mipmap/zhanghao"
        />
    <!--第二行-->
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingBottom="20dp"
        android:hint="密码"
        android:drawableLeft="@mipmap/mima"
        />
    <!--第三行-->
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录"
        android:textColor="#FFFFFF"
        android:background="#FF009688"/>
    <!--第四行-->
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录遇到问题?"
        android:gravity="center_horizontal"
        android:paddingTop="20dp"/>
</LinearLayout>

在这里插入图片描述
(3)帧布局管理器(FrameLayout)所有组件会摆放在容器的左上角

XML属性 描述
android:foreground 设置该帧布局的前景图像
android:foregroundGravity 定义绘制前景图像的gravity属性,即前景图像的显示的位置
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 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:foreground="@mipmap/mr"
    android:foregroundGravity="bottom|right"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.mingrisoft.MainActivity" >
    <!-- 添加居中显示的蓝色背景的TextView,将显示在最下层 -->
    <TextView
        android:id="@+id/textView1"
        android:layout_width="280dp"
        android:layout_height="280dp"
        android:layout_gravity="center"
        android:background="#FF0000FF"
        android:textColor="#FFFFFF"
        android:text="蓝色背景的TextView" />
    <!-- 添加居中显示的天蓝色背景的TextView,将显示在中间层 -->
    <TextView
        android:id="@+id/textView2"
        android:layout_width="230dp"
        android:layout_height="230dp"
        android:layout_gravity="center"
        android:background="#FF0077FF"
        android:textColor="#FFFFFF"
        android:text="天蓝色背景的TextView" />
    <!-- 添加居中显示的水蓝色背景的TextView,将显示在最上层 -->
    <TextView
        android:id="@+id/textView3"
        android:layout_width="180dp"
        android:layout_height="180dp"
        android:layout_gravity="center"
        android:background="#FF00B4FF"
        android:textColor="#FFFFFF"
        android:text="水蓝色背景的TextView" />
</FrameLayout>

在这里插入图片描述
(4)表格布局管理器(TableLayout)使用表格的方式按行、列来摆放组件

XML属性 描述
android:collapseColumns 设置需要被隐藏的列的序列号
android:shrinkColumns 设置允许被收缩的列的列序号
android:stretchCloumns 设置允许被拉伸的列的列序号
<?xml version="1.0" encoding="utf-8"?>
<TableLayout 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="@mipmap/biaoge"
    android:stretchColumns="0,3"
    tools:context="mingrisoft.com.MainActivity">

    <!--第一行-->
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="200dp"
        >
        <TextView />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="账 号:"
            android:gravity="center_horizontal"
            />
        <EditText
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:hint="邮箱或者手机号"
            />
        <TextView />
    </TableRow>
    <!--第二行-->
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="20dp"
        >
        <TextView />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="18sp"
            android:text="密 码:"
            android:gravity="center_horizontal"
            />
        <EditText
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:hint="输入6-16位数字或字母"
            />
        <TextView />
    </TableRow>
    <!--第三行-->
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <TextView />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="注 册"
            />
        <Button
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="#FF8247"
            android:text="登 录"/>
        <TextView />
    </TableRow>
    <!--第四行-->
    <TableRow
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:paddingTop="20dp"
        >
        <TextView />
        <TextView />
        <TextView
            android:text="忘记密码?"
            android:textColor="#FF4500"
            android:gravity="right"
            />
        <TextView />
    </TableRow>

</TableLayout>

在这里插入图片描述
(5)网格布局器(GridLayout)屏幕被虚拟的细线划分为行、列和单元格,每个单元格放置一个组件

XML属性 描述
android:columnCount 用于指定网格的最大列数
android:orientation 用于没有为放入其中的组件分配行和列时,指定其排列方式
android:rowCount 用于指定网格的最大行数
android:useDefaultMargins 用于指定是否使用默认的边距
android:alignmentMode 用于指定该布局管理器的对齐模式
android:rowOrderPreserved 用于设置行边界显示的顺序和索引的顺序是否相同
android:columnOrderPreserved 用于设置行边界显示的顺序和索引的顺序是否相同
<?xml version="1.0" encoding="utf-8"?>
<GridLayout 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:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:background="@mipmap/bg"
    android:columnCount="6"
    tools:context="com.mingrisoft.MainActivity" >
    <!-- 第一行 -->
    <ImageView
        android:id="@+id/imageView1"
        android:src="@mipmap/a1"
        android:layout_gravity="end"
        android:layout_columnSpan="4"
        android:layout_column="1"
        android:layout_row="0"
        android:layout_marginRight="5dp"
        android:layout_marginBottom="20dp"
        />
    <ImageView
        android:id="@+id/imageView2"
        android:src="@mipmap/ico2"
        android:layout_column="5"
        android:layout_row="0"
        />
    <!-- 第二行 -->
    <ImageView
        android:id="@+id/imageView3"
        android:src="@mipmap/ico1"
        android:layout_column="0"
        android:layout_row="1"
        />
    <ImageView
        android:id="@+id/imageView4"
        android:src="@mipmap/b1"
        android:layout_row="1"
        android:layout_marginBottom="20dp"
        />
    <!-- 第三行 -->
    <ImageView
        android:id="@+id/imageView5"
        android:src="@mipmap/a2"
        android:layout_gravity="end"
        android:layout_columnSpan="4"
        android:layout_column="1"
        android:layout_row="2"
        android:layout_marginRight="5dp"
        android:layout_marginBottom="20dp"
        />
    <ImageView
        android:id="@+id/imageView6"
        android:src="@mipmap/ico2"
        android:layout_column="5"
        android:layout_row="2"
        />

    <!-- 第4行 -->
    <ImageView
        android:id="@+id/imageView7"
        android:src="@mipmap/ico1"
        android:layout_column="0"
        android:layout_row="3"
        />
    <ImageView
        android:id="@+id/imageView8"
        android:src="@mipmap/b2"
        android:layout_marginBottom="20dp"
        android:layout_row="3"
        />

</GridLayout>

在这里插入图片描述
(6)绝对布局管理器(AbsoluteLayout):在android2.0被标记已过期

猜你喜欢

转载自blog.csdn.net/weixin_37411471/article/details/88357069