根据多个来源,此代码应该适用于ImageView。ImageButton 是 ImageView 的子类,因此这不应该是一个因素。以防万一,我尝试将视图更改为图像视图。无论哪种方式,都没有效果,图像保持全彩色。
ImageButton imageButton = findViewById(R.id.imageButton);
ColorMatrix matrix = new ColorMatrix();
matrix.setSaturation(0);
ColorMatrixColorFilter filter = new ColorMatrixColorFilter(matrix);
imageButton.setColorFilter(filter);
我发现了问题:我的观点没有src,只有一个背景,也就是说,它有:
android:background="@drawable/jw_true"
而不是:
android:src="@drawable/jw_true"
出于多种目的,它们可以互换,但不能用于此目的。当我的尝试不起作用时,过滤器被应用于不存在的 src,这就是什么也没发生的原因。