首页 > 解决方案 > 尝试将灰度滤镜应用于 ImageView 时我错过了什么?

问题描述

根据多个来源,此代码应适用于 ImageView。ImageButton 是 ImageView 的子类,所以这不应该是一个因素。以防万一,我尝试将视图更改为 ImageView。无论哪种方式,都没有效果,图像保持全彩色。

ImageButton imageButton = findViewById(R.id.imageButton);

ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);

ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
imageButton.setColorFilter(filter);

标签: javaandroidcolorfilter

解决方案


我发现了问题:我的view没有src,只有背景,也就是说,它有:

android:background="@drawable/jw_true"

代替:

android:src="@drawable/jw_true"

这些可用于多种用途,但不能用于此目的。当我的尝试不起作用时,过滤器被应用于不存在的 src,这就是为什么没有发生任何事情的原因。


推荐阅读