Android 在图像视图上应用ColorFilter的问题

Android 在图像视图上应用ColorFilter的问题,android,imageview,colorfilter,Android,Imageview,Colorfilter,我正在开发图像过滤器应用程序,面临一个问题。 所以我想知道如何在图像视图上应用颜色、饱和度和亮度? (请考虑我的图像视图只有一个平面颜色) 颜色: public void setImageColor(int color) { image.setColorFilter(color); } 对于饱和度: public void setSaturationBitmap(int saturation) { image.setDrawingCacheEnabl

我正在开发图像过滤器应用程序,面临一个问题。 所以我想知道如何在图像视图上应用颜色、饱和度和亮度? (请考虑我的图像视图只有一个平面颜色)

颜色:

 public void setImageColor(int color) {
        image.setColorFilter(color);
    }
对于饱和度:

 public void setSaturationBitmap(int saturation) {
        image.setDrawingCacheEnabled(true);
        image.buildDrawingCache();
        Bitmap bm = image.getDrawingCache();
        Bitmap alteredBitmap = Bitmap.createBitmap(bm.getWidth(), bm.getHeight(), bm.getConfig());
        Canvas canvas = new Canvas(alteredBitmap);
        Paint paint = new Paint();
        paint.reset();
        ColorMatrix cm = new ColorMatrix();
        cm.setSaturation(satur);
        paint.setColorFilter(image.getColorFilter());
        paint.setColorFilter(new ColorMatrixColorFilter(cm));
        Matrix matrix = new Matrix();
        canvas.drawBitmap(bm, matrix, paint);
        image.setImageBitmap(alteredBitmap);}

谢谢。

您可以编辑位图并在图像视图中使用它:

请在SOF上查看此帖子:

代码是必需的。共享它。您可能希望扩展ImageView,重写
onDraw
方法,并在调用
super.onDraw()
后应用过滤器final int-semipransparentgrey=Color.argb(155、185、185、185);setColorFilter(半透明grey,PorterDuff.Mode.SRC_);你可以看到我编辑的问题@PiyushIn我的情况下饱和度正常工作,但当我改变颜色后,我无法应用饱和度@VladyslavMatviienkoanswer,并链接到另一个答案,这永远不会好。要么用评论,要么写一个完整的答案。