古詩詞大全網 - 成語查詢 - android的ui布局有哪些

android的ui布局有哪些

布局(Layout)的概念是針對Activity的,Activity就是布滿整 個Android設備的窗口或者懸浮於其他窗口上的交互界面。在壹個應用程序中通常由多個Activity構成,每個需要顯示的Activity都需要在AndroidManifest.xml文件之中聲明。

通常情況下,開發人員可以使用兩種方式來創建UI組件,壹種方式是使用XML方式來配置UI組件的相關屬性,然後裝載這些UI組件,這也是最常用的方式。但是有些特殊情況下,需要動態生成UI組件,則需要使用第二種方式,完全使用Java代碼來創建UI組件。

 XML布局文件是Android系統中定義的Layout的常用方式,所有布局文件必須包含在res/layout目錄中,且必須符合Java的命名 規範。當在res/layout目錄下新增了布局文件之後,R.java文件會自動收錄該布局資源,Java代碼可通過setContentView方法 在Activity中顯示該Layout。

setContentView(R.layout.<資源名稱>);

在布局文件中可以指定UI組件的android:id屬性,該屬性的屬性值代表該組件的唯壹標識。通過Activity.findViewById()訪問,並且findViewById()必須在setContentView加載xml文件之後使用,否則會拋出異常。

findViewById(R.id.)

Android應用的絕大部分UI組件都放在android.widget包及其子包、android.view包及其子包中,Android應用的 所有UI組件都繼承了View類。View類還有壹個重要的子類:ViewGroup,ViewGroup類是所有布局管理器的父類。

ViewGroup容器控制其子組件的分布依賴於ViewGroup.LayoutParams、ViewGroup.MarginLayoutParams兩個內部類。

ViewGroup.LayoutParams提供兩個XML屬性設定組件的大小。

android:layout_height:指定該子組件的基本高度;

android:layout_width:指定該子組件的基本寬度。

這兩個屬性有三個基本值,這兩個屬性有三個特定的值:

fill_parent:指定組件的高度、寬度與父容器組件的壹樣。

match_parent:與fill_parent壹樣,Android2.2開始推薦使用。

warp_content:內容包裹。

ViewGroup.MarginLayoutParams用於控制子組件周圍的頁邊距。

android:layout_marginBottom(下邊距);

android:layout_marginLeft(左邊距);

android:layout_marginRight(右邊距):

layout_marginTop(上邊距)

對於View的尺寸,android提供了三種單位供選擇使用:

px:像素。

dp:dpi,表示屏幕實際的像素。

sp:與scale無關的像素,與dp類似。

尺寸單位選擇的技巧:如果設置長度、高度等屬性時可以使用dp或sp,但是如果設置字體,需要使用px。如果使用dp或sp,系統會根據屏幕密度的變化進行轉換。

為了適應各種界面風格,Android提供了五種布局規範,利用這五種布局,基本上可以在設備上隨心所欲的擺放任何UI組件,這五種布局分別是:

FrameLayout(幀布局)。

LinearLayout(線性布局)

RelativeLayout(相對布局)。

TableLayout(表格布局)。

AbsoluteLayout(絕對布局)。

線性布局(LinearLayout)

LinearLayout是最常用的布局方式,在XML文件中使用標記。它會將容器裏的UI組件壹個壹個挨著排列起來。但是LinearLayout不會換行,當UI組件超出屏幕之後,則不會被顯示出來。LinearLayout有兩個重要的XML屬性:androidgravity(對齊方 式);android:orientation(排列方式)。

android:orientation(排列方式),設定了LinearLayout中包含的UI組件的排列方式,有兩個選項vertical(豎向)、horizontal(橫向,默認值)

android:gravity(對齊方式),設定LinearLayout中包含UI組件的對齊方式,其選項很多,常用上(top)、下(bottom)、左(left)、右(right)。