Android之Android布局管理:LinerLayout线性布局

 LinerLayout线性布局:
  这种布局方式是指在这个里面的控件元素显线性,我们可以通过setOrientation(int orientation)来指定线性布局的显示方式,其值有:HORIZONTAL(0)、VERTICAL(1).默认为HORIZONTAL.与之相关的我们也可以在布局文件中通过android:orientation来指定.同理,其值也有:horizontal、vertical
  LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失,不能完全显示.因此垂直方式排列时,每一行只会有一个 widget或者是container,而不管他们有多宽,而水平方式排列是将会只有一个行高(高度为最高子控件的高度加上边框高度).LinearLayout保持其所包含的 widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐).
  关于layout_weight:
  LinearLayout还支持为其包含的widget或者是container指定填充权值.允许其包含的widget或者是container可以填充屏幕上的剩余空间.剩余的空间会按这些widgets或者是containers指定的权值比例分配屏幕.默认的 weight 值为0 ,表示按照widgets或者是containers实际大小来显示,若高于0的值,则将 Container剩余可用空间分割,分割大小具体取决于每一个widget或者是 container的layout_weight及该权值在所有widgets或者是containers中的比例.例如,如果有三个文本框,前两个文本框的取值一个为2,一个为1,显示第三个文本框后剩余的空间的2/3给权值为2的,1/3大小给权值为1的.而第三个文本框不会放大,按实际大小来显示.也就是权值越大,重要度越大,显示时所占的剩余空间越大.
  示例1:
  
  1. <?xml version="1.0" encoding="utf-8"?>
  2.   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3.   android:orientation="vertical" android:layout_width="match_parent"
  4.   android:layout_height="match_parent">
  5.   <EditText android:id="@+id/txt01" android:layout_width="fill_parent"
  6.   android:layout_height="wrap_content" android:layout_weight="1"
  7.   android:text="1111" />
  8.   <EditText android:id="@+id/txt02" android:layout_width="fill_parent"
  9.   android:layout_height="wrap_content" android:layout_weight="2"
  10.   android:text="2222" />
  11.   <EditText android:id="@+id/txt03" android:layout_width="fill_parent"
  12.   android:layout_height="wrap_content" android:text="3333" />
  13.   </LinearLayout>
复制代码

  几个常用的XML属性的详解:
  属性名称
  相关方法
  描述
  android:baselineAligned
  setBaselineAligned (boolean baselineAligned)
  是否允许用户调整它内容的基线.
  android:baselineAlignedChildIndex
  setBaselineAlignedChildIndex (int i)
  是当前LinearLayout与其它View的对齐方式
  android:gravity
  setGravity (int gravity)
  指定控件中内容的基本内容的对齐方式(本元素里的所有元素的重力方向).其值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal
  android:layout_gravity
  是当前元素相对于父元素的重力方向
  android:measureWithLargestChild
  当被设置为真时,所有的子控件将被认为是具有重量最小面积最大的子控件
  android:orientation
  setOrientation (int orientation)
  置它内容的对其方向,有两个可以选择的值: horizontal和vertical.分别表示水平排列和垂直排列.
  android:weightSum
  在Android里我们可以通过两种方式来设置布局文件,一种是可以通过XML文件来设置布局,这也是官方推荐,另外一种方式就是我们可以通过代码来设置我们的布局模式
  方式一:通过XML文件.只要在onCreate()方法里通过setContentView()指定布局文件即可
 
  1.   LinerLayout线性布局:
  2.   这种布局方式是指在这个里面的控件元素显线性,我们可以通过setOrientation(int orientation)来指定线性布局的显示方式,其值有:HORIZONTAL(0)、VERTICAL(1).默认为HORIZONTAL.与之相关的我们也可以在布局文件中通过android:orientation来指定.同理,其值也有:horizontal、vertical
  3.   LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,超过边界时,某些控件将缺失或消失,不能完全显示.因此垂直方式排列时,每一行只会有一个 widget或者是container,而不管他们有多宽,而水平方式排列是将会只有一个行高(高度为最高子控件的高度加上边框高度).LinearLayout保持其所包含的 widget或者是container之间的间隔以及互相对齐(相对一个控件的右对齐、中间对齐或者左对齐).
  4.   关于layout_weight:
  5.   LinearLayout还支持为其包含的widget或者是container指定填充权值.允许其包含的widget或者是container可以填充屏幕上的剩余空间.剩余的空间会按这些widgets或者是containers指定的权值比例分配屏幕.默认的 weight 值为0 ,表示按照widgets或者是containers实际大小来显示,若高于0的值,则将 Container剩余可用空间分割,分割大小具体取决于每一个widget或者是 container的layout_weight及该权值在所有widgets或者是containers中的比例.例如,如果有三个文本框,前两个文本框的取值一个为2,一个为1,显示第三个文本框后剩余的空间的2/3给权值为2的,1/3大小给权值为1的.而第三个文本框不会放大,按实际大小来显示.也就是权值越大,重要度越大,显示时所占的剩余空间越大.
  6.   示例1:
  7.   <?xml version="1.0" encoding="utf-8"?>
  8.   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  9.   android:orientation="vertical" android:layout_width="match_parent"
  10.   android:layout_height="match_parent">
  11.   <EditText android:id="@+id/txt01" android:layout_width="fill_parent"
  12.   android:layout_height="wrap_content" android:layout_weight="1"
  13.   android:text="1111" />
  14.   <EditText android:id="@+id/txt02" android:layout_width="fill_parent"
  15.   android:layout_height="wrap_content" android:layout_weight="2"
  16.   android:text="2222" />
  17.   <EditText android:id="@+id/txt03" android:layout_width="fill_parent"
  18.   android:layout_height="wrap_content" android:text="3333" />
  19.   </LinearLayout>
  20.   \
  21.   几个常用的XML属性的详解:
  22.   属性名称
  23.   相关方法
  24.   描述
  25.   android:baselineAligned
  26.   setBaselineAligned (boolean baselineAligned)
  27.   是否允许用户调整它内容的基线.
  28.   android:baselineAlignedChildIndex
  29.   setBaselineAlignedChildIndex (int i)
  30.   是当前LinearLayout与其它View的对齐方式
  31.   android:gravity
  32.   setGravity (int gravity)
  33.   指定控件中内容的基本内容的对齐方式(本元素里的所有元素的重力方向).其值有:top、bottom、left、right、center_vertical、fill_vertical、center_horizontal、fill_horizontal、center、fill、clip_vertical、clip_horizontal
  34.   android:layout_gravity
  35.   是当前元素相对于父元素的重力方向
  36.   android:measureWithLargestChild
  37.   当被设置为真时,所有的子控件将被认为是具有重量最小面积最大的子控件
  38.   android:orientation
  39.   setOrientation (int orientation)
  40.   置它内容的对其方向,有两个可以选择的值: horizontal和vertical.分别表示水平排列和垂直排列.
  41.   android:weightSum
  42.   在Android里我们可以通过两种方式来设置布局文件,一种是可以通过XML文件来设置布局,这也是官方推荐,另外一种方式就是我们可以通过代码来设置我们的布局模式
  43.   方式一:通过XML文件.只要在onCreate()方法里通过setContentView()指定布局文件即可
  44.   <?xml version="1.0" encoding="utf-8"?>
  45.   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  46.   android:orientation="vertical"
  47.   android:layout_width="fill_parent"
  48.   android:layout_height="fill_parent">
  49.   <LinearLayout
  50.   android:orientation="horizontal"
  51.   android:layout_width="fill_parent"
  52.   android:layout_height="fill_parent"
  53.   android:layout_weight="1">
  54.   <TextView
  55.   android:text="red"
  56.   android:gravity="center_horizontal"
  57.   android:background="#aa0000"
  58.   android:layout_width="wrap_content"
  59.   android:layout_height="fill_parent"
  60.   android:layout_weight="1"/>
  61.   <TextView
  62.   android:text="green"
  63.   android:gravity="center_horizontal"
  64.   android:background="#00aa00"
  65.   android:layout_width="wrap_content"
  66.   android:layout_height="fill_parent"
  67.   android:layout_weight="1"/>
  68.   <TextView
  69.   android:text="blue"
  70.   android:gravity="center_horizontal"
  71.   android:background="#0000aa"
  72.   android:layout_width="wrap_content"
  73.   android:layout_height="fill_parent"
  74.   android:layout_weight="1"/>
  75.   <TextView
  76.   android:text="yellow"
  77.   android:gravity="center_horizontal"
  78.   android:background="#aaaa00"
  79.   android:layout_width="wrap_content"
  80.   android:layout_height="fill_parent"
  81.   android:layout_weight="1"/>
  82.   </LinearLayout>
  83.   <LinearLayout
  84.   android:orientation="vertical"
  85.   android:layout_width="fill_parent"
  86.   android:layout_height="fill_parent"
  87.   android:layout_weight="1">
  88.   <TextView
  89.   android:text="row one"
  90.   android:textSize="15pt"
  91.   android:layout_width="fill_parent"
  92.   android:layout_height="wrap_content"
  93.   android:layout_weight="1"/>
  94.   <TextView
  95.   android:text="row two"
  96.   android:textSize="15pt"
  97.   android:layout_width="fill_parent"
  98.   android:layout_height="wrap_content"
  99.   android:layout_weight="1"/>
  100.   <TextView
  101.   android:text="row three"
  102.   android:textSize="15pt"
  103.   android:layout_width="fill_parent"
  104.   android:layout_height="wrap_content"
  105.   android:layout_weight="1"/>
  106.   <TextView
  107.   android:text="row four"
  108.   android:textSize="15pt"
  109.   android:layout_width="fill_parent"
  110.   android:layout_height="wrap_content"
  111.   android:layout_weight="1"/>
  112.   </LinearLayout>
  113.   </LinearLayout>
复制代码


  方式二:代码方式
  LinerLayout类的常用方法及常量
  方法及常量
  类型
  描述
  public static final int HORIZONTAL
  常量
  设置水平对齐
  public static final int VERTICAL
  常量
  设置垂直对齐
  public LinerLayout(Context context)
  构造方法
  创建LinerLayout类的对象
  public void addView(View child, ViewGroup.LayoutParams params)
  普通方法
  增加组组件并且指定布局参数
  public void addView(View childView)
  普通方法
  增加组件
  public void setOrientation(int orientaiton)
  普通方法
  设置对齐方式
  LinerLayout.LayoutParams用于指定线性布局的参数
  类结构图:
  java.lang.Object
  android.view.ViewGroup.LayoutParams
  android.view.ViewGroup.MarginLayoutParams
  android.widget.LinearLayout.LayoutParams
  常用布局参数:
  
  1. public static final int FILL_PARENT
  2.   public static final int WRAP_CONTENT
  3.   package com.jiahui.activity;
  4.   import android.app.Activity;
  5.   import android.content.Intent;
  6.   import android.os.Bundle;
  7.   import android.view.View;
  8.   import android.view.ViewGroup;
  9.   import android.view.View.OnClickListener;
  10.   import android.widget.Button;
  11.   import android.widget.LinearLayout;
  12.   import android.widget.TextView;
  13.   import android.widget.LinearLayout.LayoutParams;
  14.   /**
  15.   * 动态设置布局
  16.   *
  17.   * @author Administrator
  18.   *
  19.   */
  20.   public class Dyanmic_Layout_Activity extends Activity {
  21.   public void onCreate(Bundle savedInstanceState) {
  22.   super.onCreate(savedInstanceState);
  23.   // 定义线性布局管理器
  24.   LinearLayout layout = new LinearLayout(this);
  25.   // 定义布局管理器的指定宽和高
  26.   LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
  27.   ViewGroup.LayoutParams.FILL_PARENT,
  28.   ViewGroup.LayoutParams.FILL_PARENT);
  29.   layout.setOrientation(LinearLayout.VERTICAL);
  30.   // 定义要显示组件的布局管理器
  31.   LinearLayout.LayoutParams txtParam = new LinearLayout.LayoutParams(
  32.   ViewGroup.LayoutParams.FILL_PARENT,
  33.   ViewGroup.LayoutParams.WRAP_CONTENT);
  34.   TextView textView = new TextView(this);
  35.   // 显示的文字
  36.   textView.setText("动态设置布局增加的TextView组件");
  37.   // 设置文本的参数
  38.   textView.setLayoutParams(txtParam);
  39.   // 增加组件
  40.   layout.addView(textView, txtParam);
  41.   // 增加新的布局管理器
  42.   super.setContentView(layout, params);
  43.   }
  44.   }
复制代码
实现效果

  源代码下载:http://www.2cto.com/uploadfile/2011/1014/20111014013909286.rar
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值