沒有目標的人永遠為有目標的人去努力。
本講內容: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...