一、概述
自定义绘制的方式是重写绘制方法,其中最常用的是 onDraw()
绘制的关键是 Canvas 的使用
Canvas 的绘制类方法: drawXXX() (关键参数:Paint)
Canvas 的辅助类方法:范围裁切和几何变换
可以使用不同的绘制方法来控制遮盖关系
二、自定义绘制知识的四个级别
1、Canvas 的 drawXXX() 系列方法及 Paint 最常见的使用Canvas.drawXXX() 是自定义绘制最基本的操作。掌握了这些方法,你才知道怎么绘制内容,例如怎么画圆、怎么画方、怎么画图像和文字。组合绘制这些内容,再配合上 Paint 的一些常见方法来对绘制内容的颜色和风格进行简单的配置,就能够应付大部分的绘制需求了。
2. Paint 的完全攻略
Paint 可以做的事,不只是设置颜色,也不只是实心空心、线条粗细、有没有阴影,它可以做的风格设置真的是非常多、非常细。例如:拐角要什么形状?开不开双线性过滤?加不加特效?等等
3.、Canvas 对绘制的辅助——范围裁切和几何变换。
范围裁切:
几何变换
4、使用不同的绘制方法来控制绘制顺序
控制绘制顺序解决的并不是「做不到」的问题,而是性能问题。同样的一种效果,你不用绘制顺序的控制往往也能做到,但需要用多个 View 甚至是多层View 才能拼凑出来,因此代价是 UI 的性能;而使用绘制顺序的控制的话,一个View 就全部搞定了。
三、Canvas.drawXXX() 系列方法及 Paint 最基本的使用
提前创建好 Paint 对象,重写 onDraw() ,把绘制代码写在 onDraw() 里面,就是自定义绘制最基本的实现。
Paint paint = new Paint();
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
// 绘制一个圆
canvas.drawCircle(300, 300, 200, paint);
}
注意:别漏写了 super.onDraw()
1. Canvas 类下的所有 draw- 打头的方法,例如 drawCircle()和drawBitmap() 。
2. Paint 类的几个最常用的方法。具体是:
Paint.setStyle(Style style) 设置绘制模式
Paint.setColor(int color) 设置颜色
Paint.setStrokeWidth(float width) 设置线条宽度
Paint.setT