要对可绘制对象进行灰度化,我会这样做:
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(200);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
drawable.setColorFilter(filter);
如 Justin said 。效果很好。
我正在使用 svg-android 库。所以我正在尝试:
PictureDrawable pictureDrawable = svg.createPictureDrawable();
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(200);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
pictureDrawable.setColorFilter(filter);
imageView.setImageDrawable(pictureDrawable);
但是什么也没发生...出了什么问题?
最佳答案
恐怕我在 Android 源代码中找到了原因:
Drawable.java
public abstract void setColorFilter(ColorFilter cf);
PictureDrawable.java
@Override
public void setColorFilter(ColorFilter colorFilter) {}
简单地说,任何对 setColorFilter
的调用对于 PictureDrawable
来说都是无用的。
关于android - 灰度图片Drawable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10770976/