使用者介面View之ViewGroup

2021-07-02 20:18:48 字數 1535 閱讀 2363

沒有目標的人永遠為有目標的人去努力。

本講內容:viewgroup (一組檢視)

一、viewgroup 的介紹

view(檢視)是所有ui元件的基類,而viewgroup是容納這些元件的容器,viewgroup繼承於view。viewgroup

是抽象類,不能直接使用它。linearlayout等布局都是viewgroup實現類。

二、layoutparams 是viewgroup的乙個內部類

layoutparams相當於乙個layout的資訊包,它封裝了layout的位置、高、寬等資訊。為activity設定的線性布局設定新的引數,為建立的view物件

重新設定位置,大小,顏色等一系列的屬性。

譬如:利用getlayoutparams()方法和setlayoutparams()方法重新設定控制項的布局

1、首先利用getlayoutparams()方法,獲取控制項的布局引數物件。

eg:layoutparams lp=(layoutparams)imageview.getlayoutparams();

2、設定該控制項的layoutparams引數

eg: 

lp.height=200;

lp.width=100;

3、將修改好的layoutparams設定為該控制項的layoutparams.

eg:imageview.setlayoutparams(lp);

三、measurespec是view的乙個內部類

,它封裝了布局傳遞的引數height和width

四、viewgroup的重要方法    

onmeasure → onlayout → dispatchdraw

onmeasure()方法負責測量這個viewgroup和子view的大小,onlayout()方法負責設定子view的布局,dispatchdraw()方法就是真正畫上去了。

1、onmeasure()方法有兩方面作用:①獲得viewgroup和子view的寬和高 ②設定子viewgroup的寬和高

protected void onmeasure(int widthmeasurespec, int heightmeasurespec)     

}

先獲取到了寬高再設定。順序是先設定viewgroup的,再設定子view。setmeasuredimension方法必須在onmeasure呼叫,所以子view只能呼叫measure()方法設定寬高,實際上measure()方法裡面還是呼叫onmeasure()方法。

2、onlayout方法是設定子view的大小和位置。onmeasure只是獲得寬高並且儲存在它各自的view中,這時viewgroup根本就不知道子view的大小,onlayout告訴viewgroup,子view在它裡面中的大小和應該放在**。引數int l, int t, int r, int b 就是viewgroup在螢幕的位置。

注:參加文章

Android的使用者介面基礎之View的學習

view的概述 activity是android的四大元件之一,是context的間接子類,通常被稱為活動場景 每乙個activity描述了乙個可以與使用者互動的活動場景。而與使用者的互動,是通過ui介面來完成的。在android中一切可見的物件,都是由view構成的。activity中包含了一組v...

第十二講 使用者介面View之Layout 二

技術 一門外語 高薪 外國人的錢肯定比中國人的錢好賺,努力拼吧!本講內容 絕對布局 absolutelayout 相對布局 relativelayout 3 絕對布局 absolutelayout 絕對定位absolutelayout,又可以叫做座標布局,可以直接指定子元素的絕對位置,這種布局簡單直...

android使用者介面之TabHost教程例項彙總

一 tabhost基礎教程 1.最全的android的tab與tabhost講解 2.android入門第十一篇之tabhost,tabwidget 3.android ui篇 tabwidget 切換卡 4.andorid中tabhost的使用 5.android tabhost應用 6.andr...