Intereting Posts
Как использовать утечку, как добавить утечку в качестве банки для сборки apk с .mk-файлом Android: повторное использование одного и того же объекта View в разных действиях (дело касается рекламных баннеров) Кордова-CLI и PhoneGap-CLI не видят android sdk Android – контакт с номером с кодом страны Java-прокрутка игры на Android Именование моего приложения в android Заставить элемент ListView оставаться нажатым после нажатия? Как сделать телефонный звонок с динамиком на Android / layout: как создать компоновку заголовка Как работать с изображением с помощью url в android? Увеличение памяти YouWave NanoHTTPD. Кэш InputStream для записи и продолжения потоковой передачи Типография дизайна материалов – заголовки, заголовки, интервал, текстовое оформление Переключатель ListView не отображается в Android 5 Могу ли я написать приложение в javascript / HTML / CSS и продать его в магазине приложений, в Google Play и в магазине мобильных приложений для Microsoft?

VectorDrawable: Android загружает xhdpi PNG вместо векторного ресурса

Я пытаюсь использовать VectorDrawable на API21, но Android загружает ресурс PNG из папки xxhdpi . Моя текущая структура res выглядит следующим образом:

  • Рез
    • рисуем-xxhdpi
      • test_icon.png
    • вытяжка-21
      • test_icon.xml

И мой 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 и т. Д.),

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 🙂

Обновление: как @pengrad упоминает лучше всего использовать ведро anydpi . 🙂