一、 自繪控制項
繼承view,重寫view的onmeasure()、onlayout()、ondraw()步驟:
1在attrs.xml檔案中定義元件屬性(attr標籤)、宣告元件樣式(declare-styleable標籤),元件屬性的取值型別有string,color,demension,integer,enum等。
2然後在布局檔案中宣告自定義的元件,元件的命名要指定為自定義view類的全路徑,在布局檔案裡還要引入我們自己的包命名空間。
3繼承view,自定義view的實現類,在view的構造方法中通過typedarray獲得view的屬性,然後重寫onmesure()方法和ondraw(),onmesure()方法用於測量view的寬和高,如果在布局檔案中設定了view的layout_width和layout_height的具體值,系統幫我們測量的結果就是我們設定的結果,如果設定為wrap_content或match_parent系統幫我們測量的結果就是match_parent的長度,寬高計算完畢後,必須呼叫
setmeasureddimession(int width, int height)
進行設定,否則會丟擲乙個異常。onlayout用於確定view的位置。
ondraw()方法提供了canvas物件,在ondraw()方法中對canvas繪製,最終顯示的就是這個canvas物件。
總結:xml檔案中自定義
view
屬性;繼承view自定義view的實現類,在
view
的構造方法中載入
xml檔案,獲得我們自定義的屬性,重寫
onmesure
、onlayout
、ondraw。
二、繼承布局類(如linearlayout),組合多個已有的元件
1寫xml布局檔案,在布局檔案中定義多個元件
2寫布局類,在布局類的構造方法中載入布局檔案,找到布局中的元件,之後在布局類中設定元件的屬性(設定文字顏色、文字大小、設定onclicklistener)
3在activity的布局檔案中引入自定義的view(用布局類的全路徑引入),在activity中通過findviewbyid找到自定義的view,通過view中的方法對view進行操作。
三、繼承現有的元件(textview、button、listview),新增新功能,形成自定義元件
參考:
Android 自定義控制項
幹android也有一段的時間了,自定義這塊的東西覺得還是很有比較複習一下基礎的東西。自定義控制項和自定義元件基本上的使用都是在專案中基本的android控制項滿足不了需求的時候使用的。所以,如果要高出特別炫的特效,或者比較特殊的控制項排列方式,例如瀑布流,那麼就要好好學學自定義咯。首先,先簡單的介...
android自定義控制項
android自定義控制項 二 入門,繼承view 說說android 兩種為自定義元件新增屬性的使用方法和區別 自定義控制項的屬性 自定義控制項 今天花了3,4個小時看了自定義控制項,看 懂了,還沒有實踐,因為時間不夠,日後實踐。總結下 自定義控制項有3種方式 繼承已有控制項 繼承乙個容器控制項,...
Android自定義控制項
android學習筆記,整理給自己複習的時候看的,謝謝!1.自定義開關 1.宣告介面物件 public inte ce onswitchstateupdatelistener 2.新增設定介面物件的方法,外部進行呼叫 public void setonswitchstateupdatelistene...