Android drawable имеет изображение только для одного dpi

#android #android-drawable

#Android #android-drawable

Вопрос:

Если у меня есть только изображение для xhdpi , и я не хочу создавать масштабированные изображения, я хочу, чтобы Android автоматически уменьшал масштаб, когда плотность экрана ниже, xhdpi и увеличивал, когда плотность экрана выше xhdpi . Как я могу этого добиться?

Я попытался создать drawable-xhdpi папку и поместить в нее изображение. Однако в редакторе макетов изображение не отображается, после того, как я изменил имя папки на drawable-xxhdpi , изображение появляется, но слишком маленькое.

Я предполагаю, что устройство предварительного просмотра таково xxhdpi , что оно не может использовать изображения xhdpi , интересно, происходит ли то же самое на реальных устройствах?

Если да, то как я могу использовать только одно изображение с разрешением dpi и позволить системе автоматически масштабироваться до другого dpi?

Редактировать: я забыл упомянуть, что он используется как элемент растрового изображения в списке слоев, используемом на экране запуска windowBackground , поскольку приложение еще не запущено, оно не может запускать там Java-код.

Ответ №1:

Вы можете поместить свой drawable в res/drawable/ папку (без какого-либо определения плотности), а затем использовать тот ImageView.ScaleType , который соответствует вашим потребностям.

Комментарии:

1. Спасибо за ответ, я забыл упомянуть, он используется как элемент bitmap в windowBackground на экране запуска, поэтому я не могу запустить там Java-код

Ответ №2:

Если вам нужно использовать одно изображение, которое хорошо масштабируется для разных плотностей и размеров экрана, тогда SVG (масштабируемая векторная графика) — это правильный путь.Это довольно хорошо масштабируется, и вы не увидите пикселизации.

Вот все, что вам нужно знать о векторных чертежах

https://developer.android.com/studio/write/vector-asset-studio#when