android五种布局模式

Android布局是应用界面开发的重要一环,在Android中,共有五种布局方式,分别是:LinearLayout (线性布局),FrameLayout(框架布局),AbsoluteLayout(绝对布局),RelativeLayout(相对布局),TableLayout(表格布局)。

一、 线性布局

线性布局。每一个LinearLayout里面又可分为垂直布局(android:orientation="vertical")和水平布局(android:orientation="horizontal" )。当垂直布局时,每一行就只有一个元素,多个元素依次垂直往下;水平布局时,只有一行,每一个元素依次向右排列。linearLayout中有一个重要的属性 android:layout_weight="1",weight叫做权重,几个控件在一个容器内如果 权重都设置为1,那么几个工具的大小就应该相等。如果一个权重是2 其他权重是1,不表示其对应得控件大小也是其2倍。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
 >

    <EditText
        android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <EditText
       android:layout_weight="1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />
    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_weight="2"
        >
            <EditText
              android:layout_weight="1"
              android:layout_width="fill_parent"
              android:layout_height="fill_parent"
              android:text="@string/hello_world" />

           <EditText
             android:layout_weight="1"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:text="@string/hello_world" />
    </LinearLayout>

</LinearLayout>

二、FrameLayout
FrameLayout是最简单的一个布局对象。后一个子元素将会直接在前一个子元素之上进行覆盖填充,把它们部份或全部挡住(除非后一个子元素是透明的)。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_marginTop="50dp"
 >

    <FrameLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        >
        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:src="@drawable/moive"
         />
         <ImageView
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:layout_marginLeft="80dp"
            android:layout_marginTop="80dp"
            android:src="@drawable/play"
           />
     </FrameLayout>

     <LinearLayout
         android:layout_width="fill_parent"
         android:layout_height="wrap_content"
         android:orientation="horizontal"
         >
         <Button
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:text="暂停"
             />
         <Button
             android:layout_width="fill_parent"
             android:layout_height="wrap_content"
             android:layout_weight="1"
             android:text="播放"
             />
        </LinearLayout>
</LinearLayout>

三、表格布局

表格布局类似Html里面的Table。每一个TableLayout里面有表格行TableRow,TableRow里面可以具体定义每一个元素。每个TableRow 都会定义一个 row (事实上,你可以定义其它的子对象,这在下面会解释到)。TableLayout 容器不会显示row 、cloumns 或cell 的边框线。每个 row 拥有0个或多个的cell ;每个cell 拥有一个View 对象。表格由列和行组成许多的单元格。表格允许单元格为空。单元格不能跨列,这与HTML 中的不一样。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:layout_marginTop="50dp"
 >
 <TableLayout
     android:layout_width="fill_parent"
     android:layout_height="fill_parent"

     >
     <TableRow >
        <ImageView
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:src="@drawable/play"
            android:layout_weight="1"
           />
         <ImageView
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:src="@drawable/play"
            android:layout_weight="1"
           />
     </TableRow>
     <TableRow >
        <ImageView
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:src="@drawable/play"
            android:layout_weight="1"
           />
         <ImageView
            android:layout_width="35dp"
            android:layout_height="35dp"
            android:src="@drawable/play"
            android:layout_weight="1"
           />
     </TableRow>

 </TableLayout>

</LinearLayout>

四、绝对布局,就是通过xy坐标来确定控件的位置

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
 >

    <AbsoluteLayout
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        >
          <ImageView
                android:layout_width="35dp"
                android:layout_height="35dp"
                android:src="@drawable/play"
                android:layout_x="50dp"
                android:layout_y="50dp"
               />  

    </AbsoluteLayout>
</LinearLayout>

六、相对布局

相对布局的子控件会根据它们所设置的参照控件和参数进行相对布局。参照控件可以是父控件,也可以是其它子控件,但是被参照的控件必须要在参照它的控件之前定义。下面是一个简单的例子:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
 >

     <RelativeLayout
         android:layout_width="match_parent"
         android:layout_height="match_parent" >
         <ImageView
             android:id="@+id/top_name"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_toRightOf="@id/head_name"
             android:src="@drawable/top" />

         <ImageView
             android:id="@+id/head_name"
             android:layout_width="130dp"
             android:layout_height="130dp"
             android:src="@drawable/head" />

          <ImageView
             android:id="@+id/play_name"
             android:layout_width="80dp"
             android:layout_height="80dp"
             android:src="@drawable/play"
             android:layout_toRightOf="@id/head_name"
             android:layout_below="@id/top_name"
              />
     </RelativeLayout>

</LinearLayout>

时间: 2024-10-05 23:26:56

android五种布局模式的相关文章

Android五种布局方式——LinearLayout、RelativeLayout、TableLayout....(四)

Android五种布局方式--LinearLayout.RelativeLayout .TableLayout.... Android使用XML声明界面布局 将程序的表现层和控制层分离 修改用户界面时,无需更改程序的源代码 可视化工具设计用户界面 Android五种布局方式 LinearLayout线性布局 AbsoluteLayout坐标布局 RelativeLayout相对布局 FrameLayout帧布局 TableLayout表格布局 GridLayout 1.LinearLayout线

Android五种布局说明

AbsoluteLayout---->是一个按照绝对坐标定义的布局,由于使用绝对坐标去定位控件,因此要实现自适应界面时,应尽少使用 AbsoluteLayout . RelativeLayout---->最好在界面设计时 做好布局,尽少程序运行时 做控件布局的更改,因为 RelativeLayout布局里面的属性之间,很容易冲突 FrameLayout---->顾名思义跟帧有关,布局里所有的控件都被放到布局的左上角,并且一层覆盖一层. TableLayout + TableRow----

Android五种布局

1. LinearLayout LinearLayout是线性布局控件,它包含的子控件将以横向或纵向排列. 注:布局之间可以嵌套使用.即布局内既可包含控件,又可包含布局. 两个全局属性: 1. android:orientation --决定其子类控件排布方式 android:orientation="horizontal" --水平排布 android:orientation="vertical" --垂直排布 2. android:gravity --决定子类控

AES五种加密模式(CBC、ECB、CTR、OCF、CFB)

分组密码有五种工作体制:1.电码本模式(Electronic Codebook Book (ECB)):2.密码分组链接模式(Cipher Block Chaining (CBC)):3.计算器模式(Counter (CTR)):4.密码反馈模式(Cipher FeedBack (CFB)):5.输出反馈模式(Output FeedBack (OFB)). 以下逐一介绍一下: 1.电码本模式(Electronic Codebook Book (ECB)     这种模式是将整个明文分成若干段相同

转:Windows下的PHP开发环境搭建——PHP线程安全与非线程安全、Apache版本选择,及详解五种运行模式。

原文来自于:http://www.ituring.com.cn/article/128439 Windows下的PHP开发环境搭建——PHP线程安全与非线程安全.Apache版本选择,及详解五种运行模式. 今天为在Windows下建立PHP开发环境,在考虑下载何种PHP版本时,遭遇一些让我困惑的情况,为了解决这些困惑,不出意料地牵扯出更多让我困惑的问题. 为了将这些困惑一网打尽,我花了一下午加一晚上的时间查阅了大量资料,并做了一番实验后,终于把这些困惑全都搞得清清楚楚了. 说实话,之所以花了这么

AES的五种加密模式(CBC、ECB、CTR、OCF、CFB)

AES五种加密模式(CBC.ECB.CTR.OCF.CFB) 分组密码有五种工作体制:1.电码本模式(Electronic Codebook Book (ECB)):2.密码分组链接模式(Cipher Block Chaining (CBC)):3.计算器模式(Counter (CTR)):4.密码反馈模式(Cipher FeedBack (CFB)):5.输出反馈模式(Output FeedBack (OFB)). 以下逐一介绍一下: 1.电码本模式(Electronic Codebook B

索引的五种访问模式

1 index unique scan 效率最高,主键或唯一索引 2 index fast full scan 读的最快,可以并行访问索引,但输出不按顺序 3 index full scan 有顺序的输出,不能并行读索引. 4 index range scan 在给定的区间查询 5 index skip scan 联合索引,不同值越少的列,越要放在前面 索引的五种访问模式

rabbitmq的五种工作模式

abbitmq的五种工作模式 原文地址:https://www.cnblogs.com/Jeely/p/10784172.html

Android突击:常用的五种布局

1,FrameLayout FrameLayout是五大布局中最简单的一个布局,在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置,它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的子元素之上,将前面的子元素部分和全部遮挡.显示效果如下,第一个TextView被第二个TextView完全遮挡,第三个TextView遮挡了第二个TextView的部分位置. FrameLayout <?xml version="1.0" encoding=&