gpt4 book ai didi

android - 按钮 - 单击时更改背景颜色

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:51 25 4
gpt4 key购买 nike

我的 Activity 中有 8 个按钮。我正在寻找的是,按钮具有默认背景,单击按钮时,背景颜色应更改为其他颜色。这部分非常简单。但是,当我点击任何其他按钮时,第一个按钮的背景颜色应该变回默认颜色。我知道这将使用“选择器状态”来完成,但我不太确定如何实现它。我读得越多,就越困惑。

现在,我拥有的 xml 如下:在 drawable 文件夹中

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

<item android:drawable="@color/blue" android:state_pressed="true"/>
<item android:drawable="@color/dark_grey" android:state_focused="true"/>
<item android:drawable="@drawable/image_border"/>

</selector>

xml 中的 drawable/image_border 用于定义按钮的形状。下面是 image_border.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<solid android:color="@color/dark_grey" />

<stroke
android:width="4dp"
android:color="@color/light_grey" />

<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />

</shape>

有人可以帮助我如何更改 xml 以按照我需要的方式运行吗?

[编辑 1]

以下所有答案都指向类似的解决方案。这是我所做的更改。但是,仍然,当我按下按钮时,它会变成指定的颜色,但会立即变回默认颜色。

button_background_blue.xml

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

<item android:drawable="@drawable/image_border_blue" android:state_pressed="true"/>
<item android:drawable="@color/dark_grey" android:state_focused="true"/>
<item android:drawable="@drawable/image_border"/>

</selector>

image_border_blue.xml

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >

<solid android:color="@color/blue" />

<stroke
android:width="4dp"
android:color="@color/blue" />

<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />

</shape>

有什么想法吗?

最佳答案

使用此选择器并将其放入可绘制文件夹并将按钮背景设置为此选择器。

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

<item android:drawable="@color/blue" android:state_pressed="true"/>
<item android:drawable="@color/AliceBlue" android:state_focused="true"/>
<item android:drawable="@color/Azure"/>

</selector>

您可以使用颜色代替背景。希望对您有所帮助。

关于android - 按钮 - 单击时更改背景颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22044788/

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