gpt4 book ai didi

Android设置背景颜色按钮按下

转载 作者:行者123 更新时间:2023-11-29 17:48:53 24 4
gpt4 key购买 nike

我想在按下事件时更改我的 ImageButton 的背景颜色。

这是我完成的:

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

<solid android:color="@color/rose_normal" />
<solid
android:state_pressed="true"
android:color="@color/rose_fonce" />

<stroke
android:width="1sp"
android:color="@color/rose_fonce" />

</shape>

我的按钮在“rose_normal”颜色下很好,但在按下时从来没有在“rose_fonce”颜色下。

问题出在哪里?

编辑:问题已解决:

创建一个名为 background_rounded_button.xml 的 xml 文件:

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

<item android:drawable="@drawable/rounded_button_rose_fonce" android:state_selected="true"></item>
<item android:drawable="@drawable/rounded_button_rose_fonce" android:state_pressed="true"></item>
<item android:drawable="@drawable/rounded_button_rose_normal"></item>

</selector>

rounded_button_rose_fonce.xml :

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

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

<stroke
android:width="1sp"
android:color="@color/rose_fonce" />

</shape>

rounded_button_rose_normal.xml :

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

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

<stroke
android:width="1sp"
android:color="@color/rose_fonce" />

</shape>

最后,为按钮应用背景:

 <ImageButton
android:id="@+id/all_annonce_button_search"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:layout_marginBottom="10dp"
android:layout_marginRight="10dp"
android:background="@drawable/background_rounded_button.xml"
android:padding="16dp"
android:src="@drawable/ic_action_search" />

最佳答案

问题是您使用的不是选择器,而是形状。

试试这个代码(button_selector.xml,把它放在你的drawable文件夹):

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

<item android:drawable="@color/rose_fonce" android:state_selected="true"></item>
<item android:drawable="@color/rose_fonce" android:state_pressed="true"></item>
<item android:drawable="@color/rose_normal"></item>

</selector>

将此选择器设置为按钮的背景时,正常状态下为“rose_normal”颜色,按下或选中时为“rose_fonce”颜色.

例子:

<Button
android:background="@drawable/button_selector" />

关于Android设置背景颜色按钮按下,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24466983/

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