关于越来越多的新手找不到自定义view的学习资料或者无法学会自定义view。
本篇专门讲解一下初级进阶必经之路,自定义view。。
我们先把自定义View细分一下,分为两种 A 自定义ViewGroup B 自定义View
ViewGroup 就是个容器,
简单自定义我们一般采用继承特殊view或者ViewGroup 的方式。
比如做一个倒计时的Button
还有就是绘制的方式去绘制自己想要的view。
比如绘制圆角矩形作为Button背景
下面看下自定义view的步骤:
1、自定义View的属性 2、在View的构造方法中获得我们自定义的属性 3、重写onMesure 4、重写onDraw
view的属性定义在 res/ values/ 下建立一个attrs.xml文件中
<resources> <declare-styleable name="MyView"> <attr name="textColor" format="color"/> <attr name="textSize" format="dimension"/> </declare-styleable> </resources> xmlns:my=http://schemas.android.com/apk/res/com.example.xhelloworld <com.example.xhelloworld.MyView android:layout_width="fill_parent" android:layout_height="wrap_content" my:textColor="#FFFFFFFF" my:textSize="22dp" />前两部算是完成了。。。
接下来需要实现具体的MyView 类 根据需要一般采用继承特殊view或者ViewGroup 的方式。 重点强调构造函数: 如果要在布局文件中用到,还需要添加一个构造方法: public MyView (Context context,AttributeSet attrs){ super(context, attrs); } 如果写两个参数的构造函数,就需要先实现一个参数的构造函数 public class MyView extends TextView{ // 当在代码中创建对象时会被调用 public MyView (Context context) { super(context); } } 这就是为什么需要这两个构造参数的原因。
时间问题先写到这,待续。。。。。