我有一个ImageButton,我想让它按下按钮时按钮背景会改变颜色。我已经从this问题中复制了button_bg.xml文件。
button_bg.xml如下所示:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:color="#ffff0000"/> <!-- pressed -->
<item android:state_focused="true"
android:color="#ff0000ff"/> <!-- focused -->
<item android:color="#ff000000"/> <!-- default -->
</selector>
第54行看起来像这样:
<ImageButton
android:id="@+id/sendButton"
android:background="@drawable/button_bg"
android:src="@drawable/ic_action_send_now"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="4dp"
android:layout_alignParentRight="true" />
我尝试删除该行:
android:background="@drawable/button_bg"
停止应用程序崩溃,但按钮不会改变颜色。
任何帮助将不胜感激
答案 0 :(得分:0)
通过将button_bg.xml更改为以下内容:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_pressed="true"
android:drawable="@drawable/clr_pressed"/> <!-- pressed -->
<item android:state_focused="true"
android:drawable="@android:color/transparent"/> <!-- focused -->
<item android:drawable="@android:color/transparent"/> <!-- default -->
</selector>
并将以下内容添加到strings.xml
<drawable name="clr_normal">#AAAAAA</drawable>
<drawable name="clr_pressed">#777777</drawable>
问题解决了,代码按预期工作。