android:将灰度过滤器设置为imageView
Posted
技术标签:
【中文标题】android:将灰度过滤器设置为imageView【英文标题】:android:set gray scale filter to imageView 【发布时间】:2015-04-03 04:54:25 【问题描述】:我使用这个library 在 imageView 上显示 svg 图像,我想用这个 imageView 显示锁定和解锁模式,当状态被锁定时,在灰度滤色器中显示 imageView。 类似css上的这段代码:
-webkit-filter: grayscale(100%);
opacity: 0.5;
我该怎么做?有谁能够帮我 ? 谢谢
【问题讨论】:
【参考方案1】:您应该能够使用以下方法使图像变为灰度和褪色:
public static void setLocked(ImageView v)
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0); //0 means grayscale
ColorMatrixColorFilter cf = new ColorMatrixColorFilter(matrix);
v.setColorFilter(cf);
v.setImageAlpha(128); // 128 = 0.5
并使用以下方法重置它:
public static void setUnlocked(ImageView v)
v.setColorFilter(null);
v.setImageAlpha(255);
【讨论】:
啊。我担心可能是这种情况。您可以使用 svg-android (getSVGFromInputStream(is, searchColor, replaceColor)
) 的替换颜色功能,或者您可能只需将 SVG 渲染为位图并将 ImageView 设置为使用它。
@PaulLeBeau 您可以使用clearColorFilter()
方法,该方法在内部执行您在solution 中所述的相同操作
@AkshayMukadam,是的,'clearColorFilter()' 效果很好,但它不会返回过滤器之前的确切旧颜色。谢谢。
@Kotdroid 那么你可以分享什么替代方式。请
@AkshayMukadam ,我还没有其他选择。但我使用了保罗的方式。而且运行良好。以上是关于android:将灰度过滤器设置为imageView的主要内容,如果未能解决你的问题,请参考以下文章
使用 OpenCV 从 android Camera2 将 YUV 转换为 RGB ImageReader 时出现问题,输出图像为灰度