gpt4 book ai didi

android - 如何使 ImageView 的选择器仅更改背景而不更改图像源?

转载 作者:太空宇宙 更新时间:2023-11-03 12:10:03 25 4
gpt4 key购买 nike

我有一个包含图像 src 和背景颜色集的 ImageView。

此图像进入布​​局,即 gridview 项目布局。

我想创建一个 xml 选择器,当项目被选中时,图像背景会改变,但图像 src 不会。

类似于带有图标和文本的 android 主菜单,我只想突出显示图像。

我不会为对象的每个状态制作图像,我只想更改背景。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >

<ImageView
android:id="@+id/img_0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="30dp"
android:background="@drawable/selector_categorie"
android:src="@drawable/ic_launcher"/>

<TextView
android:id="@+id/text_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/img_0"
android:layout_centerHorizontal="true"
android:layout_marginTop="15dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceLarge" />

<TextView
android:id="@+id/text_2"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/text_1"
android:layout_marginTop="15dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium" />

<TextView
android:id="@+id/text_3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/text_2"
android:layout_marginTop="15dp"
android:gravity="center"
android:textAppearance="?android:attr/textAppearanceMedium" />


</RelativeLayout>

最佳答案

这可以通过 StateListDrawable 来实现.

创建背景可绘制资源,例如item_background.xml,在您的 /drawable 文件夹中,包含如下内容:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/color1" android:state_pressed="true"/>
<item android:drawable="@color/color2" android:state_selected="true"/>
<item android:drawable="@color/color3" android:state_activated="true"/>
<item android:drawable="@color/color4"/>
</selector>

然后在您的 /values/colors.xml 文件中提供颜色值:

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="color1">#DDff8800</color>
<color name="color2">...</color>
<!-- more colors... -->
</resources>

最后,使用 android:background="@drawable/item_background" 将该可绘制资源设置为布局中的项目背景。

src 图像保持不变。

关于android - 如何使 ImageView 的选择器仅更改背景而不更改图像源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14302940/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com