android:将灰度过滤器设置为imageView

android:将灰度过滤器设置为imageView,android,svg,imageview,android-image,androidsvg,Android,Svg,Imageview,Android Image,Androidsvg,我用它在imageView上显示svg图像,我想用这个imageView显示锁定和解锁模式,当状态为锁定时,在灰度颜色过滤器中显示imageView。 类似于css上的代码: -webkit过滤器:灰度(100%); 不透明度:0.5 我该怎么做?有人能帮我吗? 谢谢您应该能够使用以下方法使图像变灰和褪色: public static void setLocked(ImageView v) { ColorMatrix matrix = new ColorMatrix(); ma

我用它在imageView上显示svg图像,我想用这个imageView显示锁定和解锁模式,当状态为锁定时,在灰度颜色过滤器中显示imageView。 类似于css上的代码:

-webkit过滤器:灰度(100%);
不透明度:0.5

我该怎么做?有人能帮我吗?
谢谢

您应该能够使用以下方法使图像变灰和褪色:

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()
方法,该方法在内部执行与中所述相同的操作soloution@AkshayMukadam,是的,'clearColorFilter()'工作正常,但它不会返回过滤器之前的确切旧颜色。谢谢。@Kotdroid那么你还有什么办法可以分享呢。Please@AkshayMukadam,我还没有其他选择。但我用了保罗的方式。而且它工作得很好。