android - 灰度图片Drawable

标签 android svg

要对可绘制对象进行灰度化,我会这样做:

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/

相关文章:

css - 沿 x 轴翻转 svg,使其上下颠倒

java - 当您更改触摸位置时,为什么没有 reload() WebView

java - 单击 ActionBar 菜单时显示 fragment 返回 null

Android Firebase PERMISSION_DENIED 原因 API_KEY_SERVICE_BLOCKED

javascript - jQuery:检查 SVG 元素的类型

内联 SVG 上的 Jquery toggleClass

android - 甚至在 View 可见之前调用 RecyclerView onBindViewHolder

android - 游标在调用此方法之前停用

html - 无法在 svg 中应用线条图和填充动画

html - 将 FontAwesome 图标包含到 SVG 中