java - 尝试将灰度滤镜应用于 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);
解决方案
我发现了问题:我的view没有src,只有背景,也就是说,它有:
android:background="@drawable/jw_true"
代替:
android:src="@drawable/jw_true"
这些可用于多种用途,但不能用于此目的。当我的尝试不起作用时,过滤器被应用于不存在的 src,这就是为什么没有发生任何事情的原因。
推荐阅读
- c# - 实体框架与 IdentityUser 的关系未解决
- mariadb - Mariadb 复制主到主问题
- flutter - Stripe 不显示付款单
- qgis - 在虚拟层查询中获取层名
- amazon-web-services - 是否有针对 Binderhub 的 AWS 支持?
- n-queens - 找到第一个解决方案后如何停止递归?
- python - 如何在 VSCode 中显示/预览 python 文档字符串?
- html - 如何使文化设置与 Blazor WebAssembly 中的操作系统设置相匹配?
- flutter - 我的代码中有什么错误让我“一个被解雇的 Dismissible 小部件仍然是树的一部分”?
- java - 如何使用 GoogleCedentials 而不是已弃用的 GoogleCedential 初始化 Google 驱动器