Android 自定义view的知识梳理。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/gfg156196/article/details/60877167

关于越来越多的新手找不到自定义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);
    }
}
这就是为什么需要这两个构造参数的原因。



时间问题先写到这,待续。。。。。





猜你喜欢

转载自blog.csdn.net/gfg156196/article/details/60877167