Android开发学习笔记:5大布局方式详解

Android中常用的5大布局方式有以下几种:

  • 线性布局(LinearLayout):按照垂直或者水平方向布局的组件。
  • 帧布局(FrameLayout):组件从屏幕左上方布局组件。
  • 表格布局(TableLayout):按照行列方式布局组件。
  • 相对布局(RelativeLayout):相对其它组件的布局方式。
  •  绝对布局(AbsoluteLayout):按照绝对坐标来布局组件。
 
1. 线性布局

线性布局是Android开发中最常见的一种布局方式,它是按照垂直或者水平方向来布局,通过“android:orientation”属性可以设置线性布局的方向。属性值有垂直(vertical)和水平(horizontal)两种。

常用的属性:

android:orientation:可以设置布局的方向
android:gravity:用来控制组件的对齐方式
layout_weight:控制各个组件在布局中的相对大小

第一个实例

①效果图:

 

②核心代码如下:

main.xml

 
    
  1.  
  2.     android:orientation="vertical" 
  3.     android:layout_width="fill_parent" 
  4.     android:layout_height="fill_parent" 
  5.     >       
  6.     
  7.         android:layout_width="fill_parent" 
  8.         android:layout_height="wrap_content" 
  9.         android:orientation="vertical" 
  10.         > 
  11.         
  12.             android:layout_width="fill_parent" 
  13.             android:layout_height="wrap_content" 
  14.             /> 
  15.      
  16.     
  17.         android:layout_width="fill_parent" 
  18.         android:layout_height="wrap_content" 
  19.         android:orientation="horizontal" 
  20.         android:gravity="right" 
  21.         > 
  22.      
  23.         
  24.             android:layout_height="wrap_content" 
  25.             android:layout_width="wrap_content" 
  26.             android:text="确定" 
  27.             /> 
  28.         
  29.             android:layout_height="wrap_content" 
  30.             android:layout_width="wrap_content" 
  31.             android:text="取消" 
  32.             />    
  33.       
  34.  

第二个实例

①效果图:

 

 

②核心代码:

mian.xml
 
 
   
  1.  
  2.     android:orientation="vertical" android:layout_width="fill_parent" 
  3.     android:layout_height="fill_parent"> 
  4.  
  5.     
  6.     android:orientation="horizontal" 
  7.     android:layout_width="fill_parent" 
  8.     android:layout_height="fill_parent" 
  9.     android:layout_weight="1"> 
  10.       
  11.     
  12.         android:text="red" 
  13.         android:gravity="center_horizontal" 
  14.         android:background="#aa0000" 
  15.         android:layout_width="wrap_content" 
  16.         android:layout_height="fill_parent" 
  17.         android:layout_weight="1" 
  18.         /> 
  19.         
  20.       
  21.     
  22.         android:text="Teal" 
  23.         android:gravity="center_horizontal" 
  24.         android:background="#008080" 
  25.         android:layout_width="wrap_content" 
  26.         android:layout_height="fill_parent" 
  27.         android:layout_weight="1"/> 
  28.       
  29.     
  30.         android:text="blue" 
  31.         android:gravity="center_horizontal" 
  32.         android:background="#0000aa" 
  33.         android:layout_width="wrap_content" 
  34.         android:layout_height="fill_parent" 
  35.         android:layout_weight="1" 
  36.         /> 
  37.       
  38.     
  39.         android:text="orange" 
  40.         android:gravity="center_horizontal" 
  41.         android:background="#FFA500" 
  42.         android:layout_width="wrap_content" 
  43.         android:layout_height="fill_parent" 
  44.         android:layout_weight="1" 
  45.         /> 
  46.           
  47.        
  48.     
  49.     android:orientation="vertical" 
  50.     android:layout_width="fill_parent" 
  51.     android:layout_height="fill_parent" 
  52.     android:layout_weight="1"> 
  53.       
  54.     
  55.         android:text="row one" 
  56.         android:textSize="15pt" 
  57.         android:background="#aa0000" 
  58.         android:layout_width="fill_parent" 
  59.         android:layout_height="wrap_content" 
  60.         android:layout_weight="1" 
  61.         /> 
  62.        
  63.     
  64.         android:text="row two" 
  65.         android:textSize="15pt" 
  66.         android:background="#DDA0DD" 
  67.         android:layout_width="fill_parent" 
  68.         android:layout_height="wrap_content" 
  69.         android:layout_weight="1" 
  70.         /> 
  71.       
  72.     
  73.         android:text="row three" 
  74.         android:textSize="15pt" 
  75.         android:background="#008080" 
  76.         android:layout_width="fill_parent" 
  77.         android:layout_height="wrap_content" 
  78.         android:layout_weight="1" 
  79.         />    
  80.     
  81.         android:text="row four" 
  82.         android:textSize="15pt" 
  83.         android:background="#FFA500" 
  84.         android:layout_width="fill_parent" 
  85.         android:layout_height="wrap_content" 
  86.         android:layout_weight="1" 
  87.         />       
  88.        
  89.  
2.  帧布局
帧布局是从屏幕的左上角(0,0)坐标开始布局,多个组件层叠排列,第一个添加的组件放到最底层,最后添加到框架中的视图显示在最上面。上一层的会覆盖下一层的控件。
 
 简单的例子
①效果图:
 
② 核心代码:
main.xml
 
   
  1.  
  2.     android:layout_width="fill_parent" 
  3.     android:layout_height="fill_parent" 
  4.     > 
  5.     
  6.         android:layout_width="300dp"   
  7.         android:layout_height="300dp"   
  8.         android:background="#00BFFF"          
  9.         /> 
  10.     
  11.         android:layout_width="260dp"   
  12.         android:layout_height="260dp"   
  13.         android:background="#FFC0CB"          
  14.         /> 
  15.     
  16.         android:layout_width="220dp"   
  17.         android:layout_height="220dp"   
  18.         android:background="#0000FF"          
  19.         /> 
  20.  
 
3. 表格布局
表格布局是一个ViewGroup以表格显示它的子视图(view)元素,即行和列标识一个视图的位置。
表格布局常用的属性如下:
android:collapseColumns:隐藏指定的列
android:shrinkColumns:收缩指定的列以适合屏幕,不会挤出屏幕
android:stretchColumns:尽量把指定的列填充空白部分
android:layout_column:控件放在指定的列
android:layout_span:该控件所跨越的列数
 
简单的列子:
①效果图:
 
② 核心代码:
 main.xml
 
 
   
  1.  
  2.     android:layout_width="fill_parent" 
  3.     android:layout_height="fill_parent" 
  4.     > 
  5.      
  6.         
  7.             android:text="Button1" 
  8.             /> 
  9.         
  10.             android:text="Button2" 
  11.             /> 
  12.         
  13.             android:text="Button3" 
  14.             /> 
  15.      
  16.      
  17.         
  18.             android:text="Button4" 
  19.             /> 
  20.         
  21.             android:layout_span="2" 
  22.             android:text="Button5" 
  23.             /> 
  24.      
  25.       
  26.  
 
4. 相对布局
相对布局是按照组件之间的相对位置来布局,比如在某个组件的左边,右边,上面和下面等。
相对布局常用属性请参考我博客的: http://liangruijun.blog.51cto.com/3061169/631816
 
简单的例子
①效果图:
 
② 核心代码:
main.xml
 
 
   
  1.  
  2.     android:layout_width="fill_parent" 
  3.     android:layout_height="wrap_content" 
  4.     android:padding="10px" 
  5.     > 
  6.     
  7.         android:id="@+id/tev1" 
  8.         android:layout_width="wrap_content"   
  9.         android:layout_height="wrap_content"   
  10.         android:layout_marginBottom="30dp" 
  11.         android:text="Please Type Here:" 
  12.         /> 
  13.     
  14.         android:id="@+id/tx1" 
  15.         android:layout_width="match_parent" 
  16.         android:layout_height="wrap_content" 
  17.         android:layout_below="@id/tev1" 
  18.         /> 
  19.     
  20.         android:id="@+id/btn1" 
  21.         android:layout_height="wrap_content" 
  22.         android:layout_width="wrap_content" 
  23.         android:layout_below="@id/tx1" 
  24.         android:layout_alignParentRight="true" 
  25.         android:text="确定" 
  26.         /> 
  27.     
  28.         android:id="@+id/btn2" 
  29.         android:layout_height="wrap_content" 
  30.         android:layout_width="wrap_content" 
  31.         android:layout_below="@id/tx1" 
  32.         android:layout_toLeftOf="@id/btn1" 
  33.         android:layout_marginRight="30dp" 
  34.         android:text="取消" 
  35.         /> 
  36.  
5. 绝对布局
 绝对布局通过指定子组件的确切X,Y坐标来确定组件的位置,在Android2.0 API文档中标明该类已经过期,可以使用FrameLayout或者RelativeLayout来代替。所以这里不再详细介绍。

 

本文出自 “IT的点点滴滴” 博客,请务必保留此出处http://liangruijun.blog.51cto.com/3061169/632532

Android开发学习笔记:5大布局方式详解

你可能感兴趣的:(Android学习笔记)