溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Android中有什么屏幕元素

發(fā)布時(shí)間:2022-04-16 16:14:17 來(lái)源:億速云 閱讀:131 作者:iii 欄目:開(kāi)發(fā)技術(shù)

本篇內(nèi)容主要講解“Android中有什么屏幕元素”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“Android中有什么屏幕元素”吧!

android.app.Activity

對(duì)于一個(gè)Android應(yīng)用來(lái)說(shuō),android.app.Activity類(lèi)實(shí)例是一個(gè)最基本的功能單元。一個(gè)Activity實(shí)例可以做很多的事情,但是它本身無(wú)法顯示在屏幕上,而是借助于Viewgroup和View,這兩個(gè)才是Android平臺(tái)上最基本的兩個(gè)用戶界面表達(dá)單元。

android.view.ViewGroup

ViewGroup是一個(gè)特殊的View類(lèi),它繼承于android.view.View。它的功能就是裝載和管理下一層的View對(duì)象和ViewGroup對(duì)象。ViewGroup是布局管理器(layout)及view容器的基類(lèi)。
ViewGroup中,還定義了一個(gè)嵌套類(lèi)ViewGroup.LayoutParams。這個(gè)類(lèi)定義了一個(gè)顯示對(duì)象的位置、大小等屬性,view通過(guò)LayoutParams中的這些屬性值來(lái)告訴父級(jí),它們將如何放置。

在這里,繼承于ViewGroup的一些主要的布局類(lèi)如下:

1、FrameLayout:最簡(jiǎn)單的一個(gè)布局對(duì)象。它里面只顯示一個(gè)顯示對(duì)象。Android屏幕元素中所有的顯示對(duì)象都將會(huì)固定在屏幕的左上角,不能指定位置。但允許有多個(gè)顯 示對(duì)象,但后一個(gè)將會(huì)直接在前 一個(gè)之上進(jìn)行覆蓋顯示,把前一個(gè)部份或全部擋住(除非后一個(gè)是透明的)。

2、LinearLayout:以單一方向?qū)ζ渲械娘@示對(duì)象進(jìn)行排列顯示,如以垂直排列顯示,則布局管理器中將只有一列;如以水平排列顯示,則布局管理器中將只有一行。同時(shí),它還可以對(duì)個(gè)別的顯示對(duì)象設(shè)置顯示比例。

3、TableLayout:以擁有任意行列的表格對(duì)顯示對(duì)象進(jìn)行布局,每個(gè)顯示對(duì)象被分配到各自的單元格之中,但單元格的邊框線不可見(jiàn)。

4、AbsoluteLayout:允許以坐標(biāo)的方式,指定顯示對(duì)象的具體位置,左上角的坐標(biāo)為(0, 0),向下及向右,坐標(biāo)值變大。這種布局管理器由于顯示對(duì)象的位置定死了,所以在不同的設(shè)備上,有可能會(huì)出現(xiàn)最終的顯示效果不一致。

5、RelativeLayout:允許通過(guò)指定顯示對(duì)象相對(duì)于其它顯示對(duì)象或父級(jí)對(duì)象的相對(duì)位置來(lái)布局。如一個(gè)按鈕可以放于另一個(gè)按鈕的右邊,或者可以放在布局管理器的中央。
在Android中,提供了很多的布局管理器,這里也不一一列舉,開(kāi)發(fā)者可以根據(jù)實(shí)際需要,選擇合適的布局管理器。

android.view.View

View是所有view類(lèi)的基類(lèi),一個(gè)view通常占用Android屏幕元素上的一個(gè)矩形區(qū)域,并負(fù)責(zé)繪圖及事件處理。View是所有窗體部件的基類(lèi),是為窗體部件服務(wù)的,這里的窗體部件即UI控件,如一個(gè)按鈕或文本框。Android已經(jīng)為我們提供了一系列的標(biāo)準(zhǔn)UI控件供我們直接使用,同時(shí),我們也可以通過(guò)繼承于 View類(lèi)或View的子類(lèi),來(lái)實(shí)現(xiàn)我們自定義的UI控件。

要定制我們自己的UI控件,需要重載View類(lèi)中的一些方法,以下表格列出View提供出來(lái)的,供重載的方法,這些方法不必都要重載,但至少要實(shí)現(xiàn)onDraw(android.graphics.Canvas)方法。

當(dāng)你為一個(gè) activty 添加一個(gè)可見(jiàn)的 view, 并且運(yùn)行這個(gè)activty時(shí),android通常情況下會(huì)自動(dòng)按照下列順序來(lái)觸發(fā)view的相關(guān)事件

  1. onAttachedToWindow   

  2. onMeasure   

  3. onSizeChanged   

  4. onLayout   

  5. onDraw   

對(duì)于Android應(yīng)用中的一個(gè)屏幕,Android屏幕元素是按層次結(jié)構(gòu)來(lái)描述的。要將一個(gè)屏幕元素層次樹(shù)綁定在一個(gè)屏幕上顯示,Activity會(huì)調(diào)用它的 setContentView()方法并且傳入這個(gè)層次樹(shù)的根節(jié)點(diǎn)引用。當(dāng)Activity被激活并且獲得焦點(diǎn)時(shí),系統(tǒng)會(huì)通知activity并且請(qǐng)求根節(jié)點(diǎn)去計(jì)算并繪制樹(shù),根節(jié)點(diǎn)就會(huì)請(qǐng)求它的子節(jié)點(diǎn)去繪制它們自己。

Android屏幕元素中每個(gè)樹(shù)上的ViewGroup節(jié)點(diǎn)會(huì)負(fù)責(zé)繪制它的子節(jié)點(diǎn)。ViewGroup會(huì)計(jì)算它的有效空間,布局所有的子顯示對(duì)象,并最終調(diào)用所有的子顯示對(duì)象的 Draw()方法來(lái)繪制顯示對(duì)象。各個(gè)子顯示對(duì)象可以向父對(duì)象請(qǐng)求它們?cè)诓季种械拇笮『臀恢?,但最終決定各個(gè)子顯示對(duì)象的大小和位置的是父對(duì)象。

到此,相信大家對(duì)“Android中有什么屏幕元素”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI