android 下滤镜效果的实现

滤镜过滤颜色已实现,简单版本可通过下面代码的3个参数实现黑白、红、绿。。。等7种过滤(RGB的7种组合)。

理论上讲可以过滤为任意颜色。调整混合结果的比值就行了。

public void drawBitmap(Canvas canvas, Bitmap bitmap, boolean r, boolean g, boolean b) {
ColorMatrix cm = new ColorMatrix();
float[] m = cm.getArray();
setColorFilterMatrix(m, r, g, b);
Paint pt = new Paint();
pt.setColorFilter(new ColorMatrixColorFilter(cm));
canvas.drawBitmap(bitmap, 0, 0, pt);
}

public void setColorFilterMatrix(float[] m, boolean r, boolean g, boolean b) {
final float R = 0.213f;
final float G = 0.715f;
final float B = 0.072f;

m[0] = 0;
m[6] = 0;
m[12] = 0;

if (r) {
m[0] = R; m[1] = G; m[2] = B;
}
if (g) {
m[5] = R; m[6] = G; m[7] = B;
}
if (b) {
m[10] = R; m[11] = G; m[12] = B;
}
}

更多相关文章

  1. Android(安卓)Material Design 系列之 TextInputLayout 使用详解
  2. 设置Android状态栏的颜色
  3. android中的color使用总结
  4. Android(安卓)Paint和Color类
  5. Android状态栏
  6. Android常用控件TextView的属性详解
  7. 48.Android(安卓)标签TextView的点击技巧
  8. Android(安卓)使用Shape绘制图形
  9. android基础控件学习学习(1)【入门篇】

随机推荐

  1. Android(安卓)SDK 国内镜像
  2. flutter [!] Android(安卓)toolchain - d
  3. 【Android(安卓)系统开发】 Android(安卓
  4. asdsad
  5. 自定义对话框Dialog
  6. 怎么让Linearlayout里面的textview垂直居
  7. android manifest.xml
  8. 从零开始学习Android开发
  9. android图片缩放平移
  10. 消息驱动 Looper类