自定义View <0> 继承现有的控件

自定义View的 第一种形式继承现有的UI控件:实现特定功能,例如事件拦截,重新绘制。(继承某个控件,例如EditText,需要两个构造方法)

0:自定义View的步骤和使用:

继承View或者View的子类
声明构造方法
View(Context c) 这个构造方法在代码中创建控件的时候使用
View(Context ct,AttributeSet set)这个构造在布局xml文件中创建控件的时候自动的调用,如果自定义控件没有这个构造方法,就会抱错。报错地址:http://blog.csdn.net/rodulf/article/details/50915600,这个含有AttributeSet 的构造方法,应用于布局创建控件,这个AttribteSet attrs 就是XML里面的属性,通过这个属性传给控件,不然控件怎么知道高度时多少,宽度是多少,


1:继承已有的控件的方式
    如果要拦截,就重写onInterceptTouchEvent

    如果要重新绘制,那么就是重写onDraw()方法,onDraw方法是一个回调方法,当Android 要显示当前的控件到屏幕上的时候,就会回调这个方法,让控件自己把自己长什么样子画到屏幕上
canvas就是画布的意思,当控件在画布上面画完之后,最后由系统贴到屏幕上,记住是贴到屏幕上面的
如果上面的onDraw里面删除了super.onDraw(canvas)的话,是不会显示的,调整控件的显示:通过空间的onDraw 方法来修改,super.onDraw(canvas) 代表原有的空间显示方式;
canvas.drawArc可以用来画饼图
        canvas.drawBitmap();可以切图,按照等比切,drawBitmap还可以用来做穿衣和试衣的软件

/!!! 记住了一定不能在onDraw方法里面进行对象的创建,这样非常影响性能。

2:





你可能感兴趣的:(自定义View <0> 继承现有的控件)