VectorDrawable:Android 加载 xhdpi PNG 而不是矢量资源

VectorDrawable: Android loads xhdpi PNG's instead of the vector resource

我正在尝试在 API21 上使用 VectorDrawable,但 Android 改为从 xxhdpi 文件夹加载 PNG 资源。 我目前的res结构如下:

我的 XML 布局:

<ImageView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/test_icon"/>

还有其他方法可以解决吗?根据我的理解,Android 将始终选择 PNG 资源,但如果是这种情况,如何将 VectorDrawables 用于 API21 而将 PNG 用于较低的 API?

[更新 1]

如果我们使用 drawable-xxhdpi-21 资源文件夹,Android 将选择矢量而不是 PNG 资源。但这意味着我们还必须拥有其他密度的文件副本(或符号链接)(例如 xhdpihdpi 等)

我找到的解决方案有点乱,但似乎可行。与其将 VertorDrawable xml 文件与版本一起放入每个存储桶中,不如将它们放入 drawable-w1dp-v21 中,它会占用正确的资源并且不需要有多个副本。

这是因为,在决定使用哪个资源时,Android 检查密度和最小宽度密度之后,在这种情况下,它总是会超过 1dp :)

更新: @pengrad 提到最好使用 anydpi 存储桶。 :)

drawable-anydpi-v21 是正确的

drawable-anydpi-v21/test_icon.xml

https://google.github.io/material-design-icons/#icons-for-android