1. 程式人生 > >Android UI布局-1.1線性布局(一)-線性布局基礎

Android UI布局-1.1線性布局(一)-線性布局基礎

dev 其中 兩種 wid alt encoding 基本 ofo version

LinearLayout,中文意思就是線性布局,是一種最簡單、最常用的布局方式,它將其中的組件以線性方式進行排列。其中有垂直和水平兩種布局方向,可以使用orientation屬性來對它的方向進行設定。使用方法如下:

android:orientation="vertical"屬性將其指定為垂直線性排列;
android:orientation="vertical"屬性將其指定為水平線性排列;

當指定了方向後,線性布局中的組件就會自動垂直或者水平成一條線,一個挨一個的排列。下面我們先來看一個簡單的例子,並通過這個示例,學習線性布局的基本屬性。

示例1:
\Android Project\app\src\main\res\layout\activity_main.xml

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

    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent" 
            android:text="按鈕1"
            android:id="@+id/button1"/>

        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="按鈕2"
            android:id="@+id/button2"/>

        <Button
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:text="按鈕3"
            android:id="@+id/button3"/>

    </LinearLayout>

以上代碼,就是一個使用線性布局對組件進行布局的例子,該示例的線性布局中,擺放了三個按鈕(Button)組件。下面就以它為例對LinearLayout布局方式做簡單的介紹。該示例的運行效果如下圖所示:
技術分享圖片

首先我們來看根節點LinearLayout,它有一個屬性“xmlns:android”,用於指定命名空間,根元素必須指定命名空間。

它還有其他的屬性,像orientation、layout_width以及layout_height,這些都是定義在該命名空間中,因此需要在這些屬性前面加上前綴“android:”,表示這個屬性定義在“android”所定義的命名空間,即“http://schemas.android.com/apk/res/android” 。

每個組件都具有android:layout_width和android:layout_height屬性,他們的值可以設置為數字,可選單位有dp、dip和px等,前兩者是一樣的,px是絕對像素,而dip是設備獨立像素(Device Independent Pixels)。

px不利於不同屏幕分辨率的適配,因此Google推薦大家使用dp或者dip為單位。除了數值以外,還有三種常用的取值,分別是wrap_content、match_parent和fill_parent。其中,後兩者是一樣的,以前的老版本使用fill_parent,而後來的版本使用match_parent,他們都表示該組件將盡可能把父控件占滿,與此相對應,而wrap_content則表示只占有足夠自己內容的空間。

LinearLayout的屬性“android:orientation”是指定其中的子組件的排列方式,若指定為“vertical”,則表示子組件垂直排列,每個子組件會占獨立的一行;而指定另一個“horizontal”,它表示子組件水平排列,即每個子組件會占獨立的一列,我們上面示例的代碼中,就是使用的水平排列。大家可以將上面的方向修改哼垂直方向(即vertical),就可以看到下面這個圖的效果。
技術分享圖片

Android UI布局-1.1線性布局(一)-線性布局基礎