Intereting Posts
Создание кнопки на панели инструментов Android См. Недавнюю задачу Android, выполненную пользователем. Как я могу программно декомпилировать файлы dex в Android? Как отключить автоматическое отображение консолей АБР в Eclipse? Как сделать анимированные обои Android Live? Ошибка Кордовой / Ионной сборки (иногда): не требуется требуемая среда Как оптимизировать сетевую очередь в android Volley? (Volley Google IO 2013) Кэш приложений не работает в устройстве Android (хорошо работает в браузере Chrome) Невозможно установить плагин в eclipse из-за зависимости от пакета org.eclipse.core.runtime 3.8.0 Как активировать Instant Run в AndroidStudio 2.0 Каждый браузер, основанный на WebKit, разбивает сайты с помощью Omniture. Зачем? 3D-карусель в Android Обнаружение браузера в приложении (WebView) с помощью PHP / Javascript NoClassDefFoundError для библиотеки .jar во время выполнения в Android Studio Эмулятор Android не отображается в Device Chooser

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 и т. Д.),

Solutions Collecting From Web of "VectorDrawable: Android загружает xhdpi PNG вместо векторного ресурса"

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 . 🙂