• Android布局的基本方法

    XML布局文件
    服务器君一共花费 511.006 ms 进行了 3 次数据库查询,努力地为您提供了这个页面。
    广告很萌的

    布局是一个活动中的用户界面的架构,它定义了布局结构且存储所有显示给用户的元素。有两种方式可以声明布局:

    • 方法一:在XML格式的布局文件中声明UI。Android提供了简易的XML词汇表对应视图类和其子类,诸如widgetslayouts。
    • 方法二:在运行时实例化布局元素。可以编程地创建View和ViewGroup对象,并操作他们的属性。

    具体例子可以参看 用ImageView加载图片的两种简单方法

    Android框架给我们灵活地使用这两个方法之一或两个声明和管理你的应用程序的UI。例如,你可以用XML格式的布局文件定义应用程序默认的布局,包括将显示在屏幕的元素和属性。然后你可以编程地修改屏幕上对象的状态,包括定义在XML文件中的元素。

    最常用的是方法一,即用一个XML的布局文件定义自己的布局和表达层次视图。XML提供一种直观的布局结构,类似HTML。XML中的每个元素是一个View或者ViewGroup对象(或继承自他们的对象)。View对象是树中的叶子,ViewGroup对象是树中的分支,这点可以从上面的视图层次树中可以看出。

    在XML布局文件中声明UI的优点是:使应用程序的界面与控制它行为的代码更好地分离了。UI描述在应用程序代码之外,这意味着你可以修改或调整它而不用修改你的源码并重新编译。例如,你可以为不同的屏幕方向、不同的屏幕大小、不同的语言创建XML布局文件。此外,在XML中声明布局更易地可视化你的UI结构,因此更容易调试问题。

    一个元素XML元素的名字对应到一个Java类,因此一个<TextView>元素在你的UI中创建一个TextView,一个<linearLayout>元素创建一个LinearLayout的视图组。当你加载一个布局资源时,Android系统初始化这些运行时对象,对应你的布局中的元素。XML元素的属性对应到一个Java类的方法。

    XML布局文件

    使用Android的XML词汇,我们可以快速地设计UI布局及包含的屏幕元素,就像web页面的HTML。每个布局文件必须包含一个根元素,根元素必须是一个View或ViewGroup对象。一旦你已经定义了根元素,你可以添加额外的layout对象或widgets作为子元素,逐步地构建一个视图层次定义你的布局。例如,下面的XML布局文件使用了纵向的LinearLayout保存一个TextView和一个Button。

    <?xml version="1.0" encoding="utf-8"?> 
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    		android:layout_width="fill_parent" 
    		android:layout_height="fill_parent" 
    		android:orientation="vertical" > 
        <TextView android:id="@+id/text" 
    		android:layout_width="wrap_content" 
    		android:layout_height="wrap_content" 
    		android:text="Hello, I am a TextView" /> 
        <Button android:id="@+id/button" 
    		android:layout_width="wrap_content" 
    		android:layout_height="wrap_content" 
    		android:text="Hello, I am a Button" /> 
    </LinearLayout>
    

    布局文件以.xml为扩展名,保存在res/layout/下面,它将会被正确地编译。我们已经定义好了布局文件,那它是怎么被加载的呢?当我们编译应用程序时,每个XML布局文件被编译成一个View资源。我们应该在应用程序代码中加载布局资源,在Activity.onCreate()回调中通过调用setContentView()实现,以R.layout.layout_file_name 形式传递给它布局资源的引用。例如,如果你的XML布局保存为main_layout.xml,你应该这样加载它:

    public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView.(R.layout.main_layout); 
    } 
    

    活动中的onCreate()回调方法,当你的活动启动时被Android框架调用。

更多 推荐条目

Welcome to NowaMagic Academy!

现代魔法 推荐于 2013-02-27 10:23   

本章最新发布
随机专题
  1. [软件工程与项目管理] 开始使用Git 3 个条目
  2. [软件工程与项目管理] 浏览器的HTML解析器 8 个条目
  3. [计算机算法] 两数交换的各种算法细节 2 个条目
  4. [移动开发] 从代码角度去认识 Handler 4 个条目
  5. [软件工程与项目管理] 了解一点WebKit 9 个条目
  6. [JavaScript程序设计] 关于HTTP Keep-Alive 6 个条目
  7. [JavaScript程序设计] Web实时通信技术名词解析 5 个条目
  8. [移动开发] Android抽屉导航NavigationDrawer 5 个条目
  9. [PHP程序设计] PHP扩展模块安装 1 个条目
  10. [JavaScript程序设计] jQuery与表单操作 2 个条目
  11. [Python程序设计] Tornado表单处理 3 个条目
  12. [C语言程序设计] 结构体基本知识 1 个条目
窗口 -- [资讯]