【问题标题】:Vector drawables in BottomNavigationView menu causes errorBottomNavigationView 菜单中的矢量可绘制对象导致错误
【发布时间】:2018-09-01 17:59:26
【问题描述】:

我正在尝试使用矢量可绘制对象作为 BottomNavigationView 的图标,如下所示:

<menu
    xmlns:android="http://schemas.android.com/apk/res/android">

    <item
        android:id="@+id/navigation_incoming"
        android:icon="@drawable/incoming_background"
        android:title="Incoming"/>

    <item
        android:id="@+id/navigation_outgoing"
        android:icon="@drawable/outgoing_background"
        android:title="Outgoing"/>

    <item
        android:id="@+id/navigation_important"
        android:icon="@drawable/favorite_background"
        android:title="Favourite"/>
    <item
        android:id="@+id/navigation_settings"
        android:icon="@drawable/settings_background"
        android:title="Settings"/>

</menu>

我的drawables是这样的:

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

@drawable/ic_incoming_active 和 @drawable/ic_incoming_inactive 都是矢量可绘制对象。

我也在用vectorDrawables.useSupportLibrary = true

和

implementation "com.android.support:support-vector-drawable:27.1.1"

但我得到了

Caused by: android.content.res.Resources$NotFoundException: File res/drawable/ic_incoming_active.xml from drawable resource

【问题讨论】:

  • 我在冰淇淋三明治 API 15 上遇到了同样的问题,当我将它转换为 PNG 图像时它可以工作。

标签: android bottomnavigationview android-vectordrawable


【解决方案1】:

错误意味着无法找到可绘制的ic_incoming_active.xml。
在大多数情况下,原因是您将此可绘制对象存储在 drawable-v21 之类的文件夹中,而不是 res/drawable 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-09-07
    • 2016-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-25
    相关资源
    最近更新 更多