android自定義組件


public DrawView(Context context) {
		super(context);
		// TODO Auto-generated constructor stub
	}
	public DrawView(Context context, AttributeSet attrs) {
		super(context, attrs);
		// TODO Auto-generated constructor stub
	}
	public DrawView(Context context, AttributeSet attrs, int defStyleAttr) {
		super(context, attrs, defStyleAttr);
		// TODO Auto-generated constructor stub
	}
	


View類有三個構造方法,你在繼承時,至少要覆寫其中一個,以便創建你的自定義View。
這三個構造方法分別是一個參數,兩個參數和三個參數的。

一個參數的:在自己new對象建立此View時調用,也就是上面的new DrawView(this)這種。
二個參數的:在xml中聲明自定義View時調用,就是在main.xml裏聲明瞭<xx.xx.DrawView>這種
三個參數的:也是在XML中聲明自定義View時調用,但與兩個參數的區別是這個加入了Style樣式的引用,也就是說,如果你的 main.xml裏<xx.xx.DrawView>中加入了style="@style/xxx.xml",就會調用這個三參的方法。

綜合以上所說的,如果三個構造方法都覆寫,那麼你的自定義View怎麼建立都行。
如果只想通過java程序代碼建立,那麼只需要覆寫一個參數的。
如果只想通過XML建立,那麼需要覆寫兩個參數的,如果XML建立還想帶樣式,那麼就必須同時覆寫三個參數的構造方法了。



android5.0系統之後,又添加了一個四個參數的構造函數

public DrawView(Context context, AttributeSet attrs, int defStyleAttr,
			int defStyleRes) {
		super(context, attrs, defStyleAttr, defStyleRes);
		// TODO Auto-generated constructor stub
	}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章