当前位置: 首页 > 知识库问答 >
问题:

ImageView是否删除淡色?

戚令秋
2023-03-14

在我决定问它之前,我通过编程搜索了一些去除色调的颜色,但它被标记为重复,所以我不知道这是否也是重复的?因为它没有回答我的问题,我想。

因为我还在问是否可以在更改可绘制后重置或删除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,但图像什么也不做,变成最后一个图像。

我正在使用材料设计图标

我想将图像恢复为正常的可绘制,正如您在第一张图像中看到的那样。

谢谢你。

共有1个答案

梁丘凯定
2023-03-14

所选的可绘制对象与其他2个完全不同。您不能将< code > baseline _ favorite _ border _ 24 着色为所选的样子,您只能给边框着色,而不能用颜色填充它。顺便说一下,< code>imageTintList需要< code>API 21 。< br >所以用2个drawables(不需要下载,Android Studio里就有),把选中的一个命名为< code > baseline _ favorite _ filled _ 24 ,在两者之间切换。

if (isSelected) {
    isSelected = false
    imgHeart.setImageDrawable(itemView.context.getDrawable(R.drawable.baseline_favorite_border_24))
} else {
    isSelected = true
    imgHeart.setImageDrawable(itemView.context.getDrawable(R.drawable.baseline_favorite_filled_24))
}
 类似资料:
  • 如何在Databricks中删除Delta表?我在文档中找不到任何信息……也许唯一的解决方案是使用magic命令或dbutils删除文件夹“delta”中的文件: 编辑: 为了澄清,我在这里举了一个非常基本的例子。 例子: 并将其保存在增量表中 然后,如果我尝试删除它……这是不可能的删除表或类似的行动 其他选项,如删除表“增量/测试表”等...

  • 问题内容: 我知道该ValueEventListener线程在新线程中运行,是否应该在任何时间删除此线程以进行适当的线程管理?(例如,没有太多并行运行的线程)。如果是,该怎么办? 问题答案: 在谈论监听器时,是的,您需要根据活动的生命周期将其删除,为此,您需要使用以下代码行: 请记住,如果不这样做,最终将浪费您的电池和带宽。所以: 如果已在中添加了侦听器,则onStart必须在中将其删除onSto

  • 问题内容: 这在Microsoft SQL Server的T-SQL上是有效的语法,但在SQLite中则无效,在SQLite中是否有相同的替代语法? 问题答案: 通常,将整个联接移到一个子查询中,该子查询查找要删除的行的主键: 如果您有复合主键,则可以使用rowid代替: 如果您有复合主键,并且将该表创建为WITHOUT ROWID 表,则必须将联接重写为相关子查询:

  • 我已经使用了一段时间,但我遇到了一个错误,其中JSoup自动删除"表"元素,找不到任何解决方案... 如果你导航到这段代码中的链接,你可以看到有多个元素“表”(例如:在“Saison 01(VF)”下,有22个包含“Episode x”的表元素),但是它们在JSOUP输出中不存在... 我试图用一个简单的获取文档,打印它(表元素在那里),用Jsoup解析它,重新打印(表元素不见了),所以我知道这不

  • 我正在寻找某种方法,使一些@BeforeMethod逻辑只为一组java单元测试执行(使用testng)。因此,我继续了testng文档,发现了以下内容:

  • 我使用使用捕获的计数器从容器中删除一半元素,如下所示。用编译的C 20 输出出乎意料。对于向量,删除了一个额外的元素: 我打印出结果,看起来是意外删除的元素 虽然这通常不是erase_if的正常用法,但我仍然很好奇为什么它只发生在向量上,而不发生在其他贴图上。我猜这和迭代器类型shenanigan有关。如果有人能详细解释,我将不胜感激。