2-1 UI概述

標(biāo)注:本文為個(gè)人整理,僅做自己學(xué)習(xí)參考使用,請(qǐng)勿轉(zhuǎn)載和轉(zhuǎn)發(fā)
2018-05-23: 初稿,參考博主coder-pig

本部分主要介紹Android中的UI組建,主要包括各類組件

1、UI 概述

  1. 在Android APP中,所有的用戶界面元素都是由View和ViewGroup的對(duì)象構(gòu)成的。
  2. View是繪制在屏幕上的用戶能與之交互的一個(gè)對(duì)象。
  3. 而ViewGroup則是一個(gè)用于存放其他View(和ViewGroup)對(duì)象的布局容器!
  4. Android為我們提供了一個(gè)View和ViewGroup子類的集合,集合中提供了一些常用的輸入控件(比如按鈕和文本域)和各種各樣的布局模式(比如線性或相對(duì)布局)

1.1 用戶的布局接口

你的APP的用戶界面上的每一個(gè)組件都是使用View和ViewGroup對(duì)象的層次結(jié)構(gòu)來(lái)構(gòu)成的,比如 圖 1。每個(gè)ViewGroup都是要給看不見的用于組織子View的容器,而它的子View可能是輸入控件 或者在UI上繪制了某塊區(qū)域的小部件。有了層次樹,你就可以根據(jù)自己的需要,設(shè)計(jì)簡(jiǎn)單或者復(fù) 雜的布局了(布局越簡(jiǎn)單性能越好)

圖 1.一個(gè)UI布局的層次結(jié)構(gòu)的插圖

定義你的布局,你可以在代碼中實(shí)例化View對(duì)象并且開始構(gòu)建你的樹,但最容易和最高效的方式來(lái)定義你的布局則是使用一個(gè)XML文件,用XML來(lái)構(gòu)成布局更加符合人的閱讀習(xí)慣,而XML類似與HTML 使用XML元素的名稱代表一個(gè)View。所以< TextView >元素會(huì)在你的界面中創(chuàng)建一個(gè)TextView控件,而一個(gè)< LinearLayout >則會(huì)創(chuàng)建一個(gè)LinearLayout的容器! 舉個(gè)例子,一個(gè)簡(jiǎn)單簡(jiǎn)單的垂直布局上面有一個(gè)文本視圖和一個(gè)按鈕,就像下面這樣:

<?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="I am a TextView" />
    <Button android:id="@+id/button"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="I am a Button" />
</LinearLayout>

當(dāng)你的App加載上述的布局資源的時(shí)候,Android會(huì)將布局中的每個(gè)節(jié)點(diǎn)進(jìn)行實(shí)例化成一個(gè)個(gè)對(duì)象,然后你可以為這些定義一些額外的行為,查詢對(duì)象的狀態(tài),或者修改布局。 完整創(chuàng)建UI布局的引導(dǎo),請(qǐng)參考XML Layouts

1.2 用戶組件接口

  • 你無(wú)需全部用View和ViewGroup對(duì)象來(lái)創(chuàng)建你的UI布局。Android給我們提供了一些app控件,標(biāo)準(zhǔn)的UI布局,你只需要定義內(nèi)容。這些UI組件都有其屬性介紹的API文檔,比如操作欄,對(duì)話框和狀態(tài)通知欄等。
  • Android里的圖形界面都是由View和ViewGroup以及他們的子類構(gòu)成的:
    1. View:所有可視化控件的父類,提供組件描繪和時(shí)間處理方法
    2. ViewGroup: View類的子類,可以擁有子控件,可以看作是容器 Android UI中的控件都是按照這種層次樹的結(jié)構(gòu)堆疊得,
  • 創(chuàng)建UI布局的方式有兩種, 自己在Java里寫代碼或者通過XML定義布局,后者顯得更加方便和容易理解! 也是我們最常用的手段!另外我們一般很少直接用View和ViewGroup來(lái)寫布局,更多的 時(shí)候使用它們的子類控件或容器來(lái)構(gòu)建布局!

2、 布局接口

  • Android中的布局,Android中有六大布局,分別是:
    1. LinearLayout (線性布局)
    2. RelativeLayout (相對(duì)布局)
    3. TableLayout (表格布局)
    4. FrameLayout (幀布局)
    5. AbsoluteLayout (絕對(duì)布局)
    6. GridLayout (網(wǎng)格布局)
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,220評(píng)論 25 708
  • 【Android 自定義View】 [TOC] 自定義View基礎(chǔ) 接觸到一個(gè)類,你不太了解他,如果貿(mào)然翻閱源碼只...
    Rtia閱讀 4,136評(píng)論 1 14
  • 文/婉悅悠然(6.14日) 碧湖之前世今生——目錄 第十一章 身陷囹圄 第十二章 半路公主 皇上拿出簪子,認(rèn)真對(duì)照...
    婉悅悠然閱讀 534評(píng)論 16 18
  • 今天第二節(jié)課完了,我們拿著籃球,在外面排好隊(duì),然后到操場(chǎng)我們整好自己的位置,然后聽著老師的指揮,老實(shí)人說(shuō)曾威脅姿勢(shì)...
    谷方明閱讀 207評(píng)論 0 0
  • 高樓林立的渝中半島在清晨的薄霧中慢慢醒來(lái)。深色玻璃隔開了文強(qiáng)和囚車外的世界,即使距離很近,記者也無(wú)法看到文強(qiáng)的身影。
    pennyzhou閱讀 104評(píng)論 0 0

友情鏈接更多精彩內(nèi)容