【发布时间】:2018-07-17 00:56:03
【问题描述】:
在我决定问之前,我搜索了一些Remove Tint Color Programmatically,但它被标记为重复,所以我不知道这是否也是重复的?因为它没有回答我的问题,我想。
因为我还问是否可以在更改drawable 后RESET 或REMOVE ImageView 的色调。
这是正常的图片
这是选中的图片
这是取消选择图像后的正常图像
这是我的代码。
if (isSelected) {
// Reset the ImageView to normal
isSelected = false
imgHeart.setImageDrawable(itemView.context.getDrawable(R.drawable.baseline_favorite_border_24))
} else {
// Tint ImageView to Red
isSelected = true
imgHeart.setImageDrawable(itemView.context.getDrawable(R.drawable.baseline_favorite_24))
imgHeart.imageTintList = ColorStateList.valueOf(ContextCompat.getColor(itemView.context, R.color.colorRedHeart))
}
我也尝试了imgHeart.imageTintList = null,但图像变成白色或消失了。
我也尝试了imgHeart.colorFilter = null,但图像什么也不做,变成了最后一张图像。
我正在使用Material Design Icon。
我想让图像恢复正常drawable,正如您在第一张图片中看到的那样。
谢谢。
【问题讨论】:
-
我试了代码,
imgHeart.setImageDrawable完全清除了色调后调用了imgHeart.imageTintList = null,我认为其他地方肯定有问题。 -
您需要全部 3 个图标,还是只需要最后 2 个?
标签: android kotlin imageview tint