Android自定义View系列
- Android自定义View注意事项
- Android自定义View之Paint绘制文字和线
- Android自定义View之Canvas
- Android自定义View之轻松实现圆角和圆形图片
- Android自定义View之双缓冲机制和SurfaceView
- Android自定义View之Window、ViewRootImpl和View的三大流程
- Android自定义View之事件分发机制总结
- Android自定义View之requestLayout方法和invalidate方法
Paint和Canvas为我们提供了丰富的API,使我们可以轻松的自己画一些图。除了可以绘制文字和简单的图形,Paint和Canvas还有一些高级的功能,比如改变图片的颜色和形状等。今天我们就来看看怎么利用Paint和Canvas改变图片的颜色。
改变图片的颜色
我们需要用到Paint和Canvas的新的API
- Paint设置颜色过滤
paint.setColorFilter(new ColorMatrixColorFilter(ColorMatrix matrix)
- Canvas绘制Bitmap
canvas.drawBitmap(@NonNull Bitmap bitmap, float left, float top, @Nullable Paint paint)
这里出现了一个新东西:ColorMatrix
ColorMatrix
ColorMatrix改变颜色的原理
- ColorMatrix:即色彩矩阵,是android.graphics包下的一个类,用来处理图片的色彩。
- 它是一个4*5的数字矩阵,用一个一维数组来保存存储矩阵中的值。
- 对于每一个像素点都有一个颜色分量矩阵用来保存颜色的RGBA值
颜色矩阵
A=⎡⎣⎢⎢⎢⎢afkpbglqchmr