1

我有一个 ImageButton,我想制作它,以便在按下按钮时按钮背景会改变颜色。我已经从这个问题中复制了 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"

这会阻止应用程序崩溃,但按钮不会改变颜色。

任何帮助,将不胜感激

4

1 回答 1

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>

问题已解决,代码按预期工作。

于 2013-10-17T13:57:08.087 回答