android学习笔记(11)android布局管理器详解

2014-12-7 10:06:10     13 人阅读    

布局管理器

 

             为了更好地管理Android应用的用户界面里的各组件,Android提供了布局管理器。通过 使用布局管理器,Android应用的图形用户界面具有良好的平台无关性。通常来说,推荐使 用布局管理器来管理组件的分布、大小,而不是直接设置组件位置和大小。例如通过如下代 码定义了一个文本框(TextView):

           TextView hello = new TextView(this);

hello.setText("Helllo Android");

          为了让这个组件在不同的手机屏幕上都能运行良好——不同手机屏幕的分辨率、尺寸并不完全相同,如果让程序手动控制每个组件的大小、位置,则将给编程带来巨大的困难。为了解决这个问题,Android提供了布局管理器。布局管理器可以根据运行平台来调整组件的 大小,程序员要做的,只是为容器选择合适的布局管理器。

 

          Swing界面编程不同的是,Android的布局管理器本身就是一个UI组件,所有的布局 管理器都是ViewGroup的子类。

 

所有布局都可作为容器类使用,因此可以调用多个重载的addView() 向布局管理器中添加组件。实际上,我们完全可以用一个布局管理器嵌套到其他布局管理器中,因为布局管理器也继承了 View,也可以作为普通UI组件使用。

 

Android线性布局

 

      线性布局由LinearLayout类来代表,线性布局有点像AWT编程里的FlowLayout,它们 都会将容器里的组件一个挨着一个地排列起来。LinearLayout不仅可以控制各组件横向排列 (通过设置android:orientation属性控制),也可控制各组件纵向排列。

 

线性布局与AWTFlowLayout的最大区别在于:Android的线性布局不会换行:当组 件一个挨着一个地排列到头之后,剩下的组件将不会被显示出来;在AWTFlowLayout 会另起一行来排列多出来的组件。

 

2.4显示了 LinearLayout支持的常用XML属性及相关方法的说明。

2.4 LinearLayout的常用XML属性及相关方法

XML属性

相关方法

android:gravity

setGravity(int)

gravity对齐方式。该属性支持topbottomleftright center_verticalfill_verticalcenter_horizontalfill_horizontalcenterfill clip_verticalcUp_horizonlal儿个展性值,也可以同时指定多种对齐方式的 组合.例如leftlcenter_vertica丨代衣出现在W箱左边,而且垂ft沾中

android.orientation

setOrientation(int)

设置布局管理器内组件的排列方式,可以设置为horizontal(水平排列)、 vertical (垂直排列、默认值)两个值的K中之一

 

android:gravity属性中的多个属性值之间用竖线隔开,但竖线前后千万不能出现空格。

例如定义如下XMLM管理器。

程序清单:main.xml

 

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

       android:orientation="horizontal"

       android:layout_width="fill_parent"

       android:layout_height="fill_parent"

       android:gravity="top"

       >

<Button  

       android:id="@+id/bn1"

       android:layout_width="wrap_content" 

       android:layout_height="wrap_content" 

       android:text="@string/bn1"

       />

<Button  

       android:id="@+id/bn2"

       android:layout_width="wrap_content" 

       android:layout_height="wrap_content" 

       android:text="@string/bn2"

       />

<Button  

       android:id="@+id/bn3"

       android:layout_width="wrap_content" 

       android:layout_height="wrap_content" 

       android:text="@string/bn3"

       />

<Button  

       android:id="@+id/bn4"

       android:layout_width="wrap_content" 

       android:layout_height="wrap_content" 

       android:text="@string/bn4"

       />

<Button  

       android:id="@+id/bn5"

       android:layout_width="wrap_content" 

       android:layout_height="wrap_content" 

       android:text="@string/bn5"

       />    

</LinearLayout>

 

         上面的界面布局非常简单,它只是定义了一个简单的线性布局,并在线性布局中定义了 5个按钮。定义线性布局时使用粗体字代码指定了垂直排列所有组件,而且所有组件对齐到 容器底部并且水平居中,运行上面的程序,使用Activity显示上面的界面布局

 

        如果将上面的布局文件中 android:gravity="bottomlcenter_horizomal"改为 android:gravity=”rightlcenter_vertical”也就是所有组件水平右对齐、垂直居中


原文地址:http://www.itmmd.com/201412/269.html
该文章由 萌萌的IT人 整理发布,转载须标明出处。

android学习笔记(12)android表格布局   上一篇
下一篇  高性能HTML5(2)-html5开发原则

精彩回复
发表评论
姓名:       

《程序员app》专门为程序员量身定做!