前面兩篇文章介紹了自定義view的onmeasure和onlayout原理,本文準備介紹自定義view的第三個關鍵部分,即ondraw()函式的過載。
對於乙個自定義view來說,onmeasure只是用來計算view尺寸,ondraw()才是真正執行view的繪製,所以一般我們都需要重寫ondraw()函式來繪製我們期望的ui介面。下面我以乙個具體的例子探索自定義view的ondraw()的實現過程和關鍵點。
1. 首先,自定義view的派生類
public class animatorview extends view
public animatorview(context context, attributeset attrs)
public animatorview(context context, attributeset attrs, int defstyle)
protected void initialize()
}
注: paint是用來繪圖的畫筆,可以設定其樣式、畫面的粗細、填充模式、顏色等等。
2. 定義待繪製的圖形資料
待繪製的圖形資料一般是在程式中動態給出的,這裡為了演示,直接定義好:
public class animatorview extends view ,,,
,};
private int mpainttimes = 0; //當前已經繪製的次數
}
3. 過載ondraw()函式,實現繪製
public class animatorview extends view
}
當然,也可以把該view放到layout檔案中,這裡就不贅述了。
5. 小結
android開發之自定義帶邊框的TextView
自定義帶邊框的textview activity package cn.class3g.activity import android.content.context import android.graphics.canvas import android.graphics.paint impor...
Android 自定義帶圓角的dialog
由於感覺android系統自帶的dialog樣式不是很美觀,就自己定義了乙個dialog 1.在styles裡定義樣式 2.在drawable裡定義乙個shape畫圓角 3.在layout裡定義個性化布局 4.activity裡的 layoutinflater inflater getlayouti...
android開發之自定義dialog
很多時候,系統生成的dialog無法滿足我們的需求,這個時候,我們就只能自己去自定義乙個dialog來滿足自己的需要了。設定dialog 雙按鈕 private void showdialog string str1,string str2 確定按鈕 button btnok button layo...