VectorDrawable: Android загружает xhdpi PNG вместо векторного ресурса
Я пытаюсь использовать VectorDrawable
на API21, но Android загружает ресурс PNG из .
Мой текущий res
структура выглядит следующим образом:
- res
- drawable-xxhdpi
- test_icon.формат PNG
- drawable-21
- test_icon.в XML
- drawable-xxhdpi
и мой 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
и т. д.)
2 ответов
drawable-anydpi-v21 подходит для этого
drawable-anydpi-v21/test_icon.xml
https://google.github.io/material-design-icons/#icons-for-android
решение, которое я нашел, немного взломано, но, похоже, работает. Вместо того, чтобы положить ваш VertorDrawable
xml-файлы в каждом ведре с версией, если вы поместите их в drawable-w1dp-v21
Он принимает правильный ресурс и не нужно иметь несколько копий.
это потому, что, решая, какой ресурс использовать, Android проверяет плотность и после минимальной плотности ширины, которая в этом случае всегда будет больше 1dp:)
обновление: as @pengrad упоминает лучше всего использовать anydpi
ведро. :)