在自定义View 用 paint绘制的时候,如果要添加颜色过滤器怎么添加,下面介绍一种方法,使用
ColorMatrixColorFilter
在设置ColorMatrixColorFilter的时候,需要传入一个颜色的矩阵colorMatrix, paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
举证一般是5*4的矩阵,如下
float[] colorMatrix = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1f, 0f, };
但是,如果我要设置指定颜色值的矩阵,如和转换,例如颜色Int颜色值
如果是Int颜色的color,需要剥离除红,绿,蓝
int red = (color & 0xff0000) >> 16; int green = (color & 0x00ff00) >> 8; int blue = (color & 0x0000ff);
然受带入以上的矩阵,记得一定要 除以 255,这个是中众合取色的算法,
colorMatrix[0] = red/255f; colorMatrix[6] = green/255f; colorMatrix[12] = blue/255f;
然后设置过滤器
paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix));
搞定!