|
框架布局是將控件組織在Android程序的用戶界面中最簡(jiǎn)單的布局類型之一。
理解布局對(duì)于良好的Android程序設(shè)計(jì)來(lái)說(shuō)是非常重要的。在這個(gè)教程里,你將學(xué)到所以關(guān)于框架布局的知識(shí),它們主要用來(lái)在屏幕上組織特別的或重疊的視圖控件。使用得當(dāng)?shù)脑挘芏嘤腥さ?a href=/yidongkaifa/android/ target=_blank class=infotextkey>Android程序用戶界面都可以基于框架布局來(lái)設(shè)計(jì)。
什么是框架布局
框架布局是Android開(kāi)發(fā)者組織視圖控件最簡(jiǎn)單和最有效的布局之一。它們使用得比其它一些布局要少一些,只是因?yàn)樗鼈円话阒挥糜陲@示單個(gè)視圖,或重疊的視圖。框架布局常用作容器布局,因?yàn)樗话阒挥幸粋€(gè)子視圖(通常是另一個(gè)布局,用于組織多個(gè)視圖)。
技巧:事實(shí)上,你會(huì)看到框架布局是作為你設(shè)計(jì)的任何布局資源的父布局來(lái)使用的。如果你在層級(jí)視圖工具(Hierarchy Viewer tool,一個(gè)很有用的調(diào)試你的程序布局的工具)創(chuàng)建你的程序,你會(huì)發(fā)現(xiàn)你設(shè)計(jì)的任何布局資源都被顯示在一個(gè)父布局中——一個(gè)框架布局。
框架布局非常簡(jiǎn)單,這使得它們非常高效。它們可以在XML布局資源文件中定義,也可以通過(guò)Java代碼在程序中定義。框架布局中的一個(gè)子視圖總是被繪制到相對(duì)于屏幕的左上角上。如果存在多個(gè)子視圖,那么他們被按順序一個(gè)堆疊在另一個(gè)上面的方式繪制。這意味著第一個(gè)添加到框架布局的視圖將顯示在棧的底部,最后添加的視圖會(huì)顯示在最頂部。
讓我們來(lái)看一個(gè)簡(jiǎn)單的例子。我們假設(shè)有一個(gè)框架布局大小調(diào)整到控制整個(gè)屏幕(換句話說(shuō),layout_width and layout_height屬性都設(shè)置為match_parent)。我們要添加三個(gè)子控件到這個(gè)框架布局:
- 一個(gè)有湖面圖片的ImageView。
- 一個(gè)在屏幕頂部顯示的TextView。
- 一個(gè)在屏幕底部顯示的(使用layout_gravity屬性將TextView下沉到父布局的底部)TextView。
下圖展示這種類型的布局在屏幕上會(huì)是什么樣:
在XML資源文件中定義框架布局
設(shè)計(jì)程序用戶界面最方便和可維護(hù)的方法是創(chuàng)建XML布局資源。這個(gè)方法極大地簡(jiǎn)化了UI設(shè)計(jì)過(guò)程,將很多靜態(tài)創(chuàng)建和用戶界面控件的布局以及控件屬性的定義移到XML中去,取代了寫(xiě)代碼。
XML布局資源必須存儲(chǔ)在/res/layout項(xiàng)目目錄下。讓我們看看前一節(jié)介紹的框架布局。同樣地,這個(gè)屏幕基本上就是一個(gè)有三個(gè)子視圖的框架布局:一個(gè)充滿整個(gè)屏幕的圖片,兩個(gè)文本控件繪制在它上面,每一個(gè)文本控件都是默認(rèn)透明背景。這個(gè)布局資源文件命名為/res/layout/framed.xml,在XML中如下定義:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="fill_parent" Android:layout_height="fill_parent">
<ImageView Android:id="@+id/ImageView01" Android:layout_height="fill_parent"
Android:layout_width="fill_parent" Android:src="@drawable/lake"
Android:scaleType="matrix"></ImageView>
<TextView Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:textColor="#000"
Android:textSize="40dp"
Android:text="@string/top_text" />
<TextView Android:layout_width="fill_parent"
Android:layout_height="wrap_content"
Android:text="@string/bottom_text"
Android:layout_gravity="bottom" Android:gravity="right"
Android:textColor="#fff" Android:textSize="50dp" /> </FrameLayout>
it知識(shí)庫(kù):Android用戶界面設(shè)計(jì):框架布局,轉(zhuǎn)載需保留來(lái)源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。