Android:具有可绘制资源的ImageButton抛出ResourceNotFoundException

时间:2015-07-17 10:59:16

标签: android android-drawable android-imagebutton

我正在尝试按照this instruction创建自己的按钮样式。所以我创建了两个drawables(形状)。一个用于压制式,一个用于普通式。两者都只是推迟了颜色。

但是当我启动应用程序时,它会因异常而崩溃(见下文)。不知怎的,它无法找到按钮资源。但为什么呢?

这是可绘制的形状(button_rounded_pressed.xml和button_rounded_normal.xml):

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
       android:shape="rectangle">
    <solid android:color="?attr/colorPrimary" />
    <padding android:left="7dp"
             android:top="7dp"
             android:right="7dp"
             android:bottom="7dp" />
    <corners android:radius="8dp" />
</shape>

然后我创建了一个选择器button_rounded.xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@drawable/button_rounded_pressed"
          android:state_pressed="true" />
    <item android:drawable="@drawable/button_rounded_normal" />
</selector>

然后在ImageButton上使用此样式/ drawable / selector,如下所示:

    <ImageButton
            android:layout_width="150dp"
            android:layout_height="150dp"
            android:layout_centerHorizontal="true"
            android:layout_centerVertical="true"
            android:layout_alignParentTop="true"
            android:src="@mipmap/ic_launcher"
            android:background="@drawable/button_rounded"
            />

但是在运行布局时运行应用程序会抛出以下异常。

  

引起:android.content.res.Resources $ NotFoundException:File   res / drawable / button_rounded.xml来自可绘制资源ID#0x7f02003b               在android.content.res.Resources.loadDrawable(Resources.java:1953)               在android.content.res.TypedArray.getDrawable(TypedArray.java:601)               在android.view.View。(View.java:3328)

注意:您可以访问我的代码via GitHub

1 个答案:

答案 0 :(得分:1)

我敢打赌你正在测试一个前Lollipop设备。您需要删除colorPrimary属性。

编辑:根据this错误报告,直到Lollipop才支持在drawable中引用主题属性。