Android ImageView样式可管理单击事件的色彩

问题描述

在网格视图中按下图像时,我想将图像的轮廓颜色更改为蓝色(认为黑色)。

我知道我们可以通过在imageview的单击上设置色调颜色来以编程方式进行操作,但是我的要求是制作样式/主题,以便可以将其应用于网格项的XML级别。

我需要这个,因为网格中的图像数量是动态的,并且我事先不知道列表中所有图像将是什么。

解决方法

您应该为ImageView创建一个选择器,然后将其保存为res / color:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_focused ="true" android:color="<your-color>"/>
    <item android:state_pressed="true" android:color="<your-color>"/>
</selector>

并使用

在您的ImageView上进行设置
app:tint="@color/<your-selector.xml>"

此外,在您的ImageView上设置这些属性

android:focusable="true"
android:clickable="true"

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...