android.view.InflateException二进制XML文件行#54

时间:2013-10-16 17:06:39

标签: android xml

我有一个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"

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

任何帮助将不胜感激

1 个答案:

答案 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>

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