我尝试在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资源。但这意味着我们必须为其他密度设置文件的副本(或符号链接)(例如xhdpi
,hdpi
等)
答案 0 :(得分:6)
drawable-anydpi-v21适合
drawable-anydpi-v21/test_icon.xml
https://google.github.io/material-design-icons/#icons-for-android
答案 1 :(得分:1)
我发现的解决方案有点像黑客但似乎有效。如果您将VertorDrawable
xml文件放在版本的每个存储桶中,而不是将它们放在drawable-w1dp-v21
中,则需要使用正确的资源,而不需要拥有多个副本。
这是因为,在决定使用哪种资源时,Android会检查密度和最小宽度密度之后,在这种情况下总是要超过1dp:)
更新:,因为@pengrad提到最好使用anydpi
存储桶。 :)