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
	}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值