Если вы используете мастер векторных ресурсов в Android Studio 1.5.0, любой векторный XML-код, который вы импортируете с помощью этого мастера, входит в res/drawable/
.
Однако build/
каталог и результирующий APK показывают, что эти XML-файлы перемещаются в res/drawable-anydpi-v21/
каталог ресурсов. Эта -v21
часть имеет смысл, поскольку VectorDrawable
поддерживается только на уровне API 21+. Однако, -anydpi
похоже, недокументировано. Я ожидал -nodpi
, как для исходного пункта назначения импорта, так и для того, куда система сборки решит его переместить.
Кто-нибудь видел официальные заявления о том -anydpi
, что означает средство и с чем оно связано -nodpi
? Я ищу практические эффекты, а не просто то, на что намекают некоторые комментарии кода.
android
android-resources
CommonsWare
источник
источник
Ответы:
нодпи
Например:
Точка будет маленькой на xxhdpi, большой - на ldpi.
Однако преобразователь ресурсов будет соответствовать определенному квалификатору, если он существует.
Например
На устройстве hdpi Lollipop (API 21) используется растровое изображение .
На устройстве xhdpi Lollipop (API 21) используется вектор.
anydpi
Например
На устройстве hdpi Lollipop (API 21) используется вектор .
На устройстве xhdpi Lollipop (API 21) используется вектор.
Ссылка
Примечание : anydpi был добавлен в изменение Ic3288d0236fe0bff20bb1599aba2582c25b0db32 .
источник
drawable
. Поведение SDK может измениться. См. VectorDrawable: Android загружает PNG xhdpi вместо векторного ресурсаdrawable
каталогом ресурсов, так же как оба каталога, которые я цитировал в своей награде, являютсяdrawable
каталогами ресурсов.-xxhdpi
устройство. У меня естьres/drawable-mdpi/nodpi_and_m.png
иres/drawable-nodpi/nodpi_and_m.xml
. На устройстве Nexus 5-xxhdpi
используется ресурсres/drawable-nodpi/nodpi_and_m.xml
. Согласно вашему алгоритму и моим ожиданиям,res/drawable-mdpi/nodpi_and_m.png
следует использовать. Это не то, что происходит.drawable-anydpi-v21
. Если у вас есть библиотека support-vector-drawable, вы можете разместить их вdrawable-anydpi
или простоdrawable
.Исходный код содержит следующие комментарии (строка 639):
Надеюсь, это устранит путаницу.
источник
-nodpi
каталогах наверняка масштабируются в зависимости от размера, в соответствии с любыми правилами использования рисованного объекта.nodpi
: Ресурсы для всех плотностей. Это ресурсы, не зависящие от плотности. Система не масштабирует ресурсы, помеченные этим квалификатором, независимо от плотности текущего экрана.anydpi
: Этот квалификатор соответствует любой плотности экрана и имеет приоритет над другими квалификаторами. Это полезно для векторных чертежей. Добавлено в API уровня 21.источник
Я использую drawable-nodpi для всего, включая большое количество крупной графики для моей игры. Одним из недокументированных последствий увеличения масштаба графики является экспоненциальное увеличение использования памяти. Таким образом, если у вас есть рисунок размером 1 МБ, доступный для рисования, он будет масштабирован до 4 МБ, 16 МБ или 64 МБ в зависимости от разрешения пользовательского устройства. И разрешения устройств продолжают расти. Конечно, это увеличение на самом деле не увеличивает резкость изображения. Действия рисования могут в любом случае определять, насколько большим должен быть каждый рисунок по отношению к размеру экрана, нет необходимости раздувать приложение несколькими папками для рисования.
источник