一、简述
对于自定义View的实现,Canvas和Paint两类是很有用的。
这两个类是 android.graphics 包下的两个类,Canvas是画布,Paint是画笔,通过这两者结合一起,就可以绘制出自己需要的View,然后将View加入到布局 xml 中或者在 Java 代码中引用即可。
二、基本步骤
(一)创建一个自定义的MyView继承View
(二)创建MyView的三个构造方法
- MyView(Context context)
- MyView(Context context,AttributeSet attributeSet)
- MyView(Context context, AttributeSet attributeSet,int defStyleAttr)
(三)重写View.onDraw()方法,添加自己的绘制逻辑
(四)在Java代码中引用或者加入到XML布局中
三、具体步骤
(一)创建一个自定义MyView继承View
public class MyView extends View {
}
(二)创建MyView的三个构造函数
//当Java代码中创建MyView时调用,如setContentView(new MyView(this))
public MyView(Context context) {
super(context);
}
//当在XML中引入MyView时候调用
public MyView(Context context, AttributeSet attributeSet)
{
super(context,attributeSet);
}
//这个构造函数一般不会主动调用
public MyView(Context context,AttributeSet attributeSet,int defStyleAttr)
{
super(context,attributeSet,defStyleAttr);
}
Tips:注意三个构造函数的区别,在不同的情况调用不同的构造函数
(三)重写View.onDraw()方法
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//这里添加自己的绘制逻辑
}