Intereting Posts
Зависимость org.json: json: 20090211 игнорируется для отладки, поскольку она может противоречить внутренней версии, предоставляемой Android Android-PhoneGap / WebView игнорирует метатеги просмотров? Как создать эмулятор Samsung Galaxy Note в Android AVD? Потоки приложений vs Сервисные потоки AsyncTask, должен ли он принять такой удар по производительности …? Как правильно выпустить Android MediaPlayer В чем смысл новой аннотации @SystemApi, любая разница от @hide? ConstraintLayout – Элемент занимает необходимое пространство до того, что доступно Есть ли более быстрое решение для рендеринга видео, чем использование функций AndroidBitmap_xxx? Android N не отправляет трансляцию android.net.conn.CONNECTIVITY_CHANGE? Прокрутка TextView в ScrollView до определенной подстроки текста Скрыть мягкую клавиатуру на Done Keypress в Android? Как использовать библиотеку поддержки Renderscript с Gradle Android – Как получить файл изображения из кэш-памяти Fresco? Не работает Google Analytics для Android v2.

О изображении и размерах Android

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

Если я укажу в файле xml, что высота чего-то [вид изображения] равна 50 глубине падения

Какой тип экрана я должен выбрать из папки ресурсов?

drawable, hdpi, ldpi, mdpi, xhdpi, 

Чтобы иметь изображение высотой 50 пикселей,

И каков процент для больших изображений меньшего размера по сравнению с базовым изображением,

Как в iOS, @ 2x, буквально в 2 раза больше размера изображения, и вы говорите программно нормальный размер,

благодаря!

Solutions Collecting From Web of "О изображении и размерах Android"

mdpi – эталонная плотность, т. mdpi 1 px на дисплее mdpi равно 1 dip. Соотношение для масштабирования активов:

 ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi 0.75 | 1 | 1.33 | 1.5 | 2 | 3 | 4 

Хотя вам не нужно беспокоиться о tvdpi если вы не разрабатываете специально для Google TV или оригинального Nexus 7, но даже Google рекомендует просто использовать активы hdpi .

Это означает, что если вы делаете 48dip-образ и планируете поддерживать до xxhdpi resolution , вы должны начать с изображения размером 144 пикселя (192px, если вы хотите использовать собственные ресурсы для xxxhdpi) и сделать следующие изображения для плотности:

 ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi 36 x 36 | 48 x 48 | 64 x 64 | 72 x 72 | 96 x 96 | 144 x 144 | 192 x 192 

И они должны отображаться примерно на одном уровне на любом устройстве, если вы разместили их в папках, специфичных для плотности (например, drawable-xhdpi drawable-hdpi , drawable-hdpi и т. Д.),

Для справки, плотность пикселей для них:

 ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi 120 | 160 | 213 | 240 | 320 | 480 | 640 

Основываясь на ответе kcoppock , я создал следующий сценарий оболочки, чтобы автоматически изменять размер всех изображений до нужного размера и копировать их в соответствующих папках с возможностью выгрузки Android *.

Создайте сценарий оболочки и вставьте следующий код:

createAndroidImages.sh

 #!/bin/bash read -p "Please enter the subfolder of the original images? " folder read -p "How many DP (width) should the image have? " dp for i in $(find $folder/. -type f -name "*[AZ]*"); do mv "$i" "$(echo $i | tr AZ az)"; done mkdir drawable-ldpi mkdir drawable-mdpi mkdir drawable-tvdpi mkdir drawable-hdpi mkdir drawable-xhdpi mkdir drawable-xxhdpi mkdir drawable-xxxhdpi cp $folder/* drawable-ldpi/ cp $folder/* drawable-mdpi/ cp $folder/* drawable-tvdpi/ cp $folder/* drawable-hdpi/ cp $folder/* drawable-xhdpi/ cp $folder/* drawable-xxhdpi/ cp $folder/* drawable-xxxhdpi/ sips -Z $(echo $dp*3/4 | bc) drawable-ldpi/* sips -Z $(echo $dp | bc) drawable-mdpi/* sips -Z $(echo $dp*4/3 | bc) drawable-tvdpi/* sips -Z $(echo $dp*3/2 | bc) drawable-hdpi/* sips -Z $(echo $dp*2 | bc) drawable-xhdpi/* sips -Z $(echo $dp*3 | bc) drawable-xxhdpi/* sips -Z $(echo $dp*4 | bc) drawable-xxxhdpi/* 

Поместите свой скрипт в папку и исходные изображения в подпапку, например:

 / .. createAndroidImages.sh .. originalImages/ ....a123.png ....b456.png 

Запустите сценарий оболочки в терминале: sh createAndroidImages.sh

Чтобы скопировать созданные изображения непосредственно в проект Android Studio:

 cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/ 

Все готово! Надеюсь, это поможет кому-то!

PS Обратите внимание, что исходные изображения должны иметь по крайней мере четыре раза ширину в пикселях, чем желаемая ширина в dpi (например, 4 (коэффициент xxxhdpi) * 30dpi => 120px) для достижения оптимальных результатов.

Kcoppock проделал отличную работу, объясняя плотность экрана Andorid. Я просто хотел бы добавить еще один момент в отношении исходного вопроса.

Значок Android-планшета Android использует одну плотность.

Согласно сообщению разработчика Google Ник Батчер Google+

Великолепный экран на Nexus 10 попадает в ведро плотности XHDPI. На планшетах Launcher использует значки из одного набора плотности вверх [0], чтобы сделать их немного большими. Чтобы ваш значок запуска (возможно, ваш самый важный ресурс приложения) был четким, вам нужно добавить значок 144 * 144px в папку drawable-xxhdpi или drawable-480dpi.

Найти источник здесь

Вот мои расчеты для масштабирования и масштабирования изображений для Android-

Ldpi (120 dpi, экран с низкой плотностью) – 36 пикселей x 36 пикселей (0,19) (1)

Mdpi (160 dpi, экран средней плотности) – 48px x 48px (0,25) (1,33)

Hdpi (240 dpi, экран высокой плотности) – 72px x 72px (0,38) (2)

Xhdpi (320 точек на дюйм, Экран сверхвысокой плотности) – 96 пикселей x 96 пикселей (0,5) (2,67)

Xxhdpi (480 точек на дюйм, Экстра сверхвысокой плотности) – 144px x 144px (0,75) (4)

Xxxhdpi (640 точек на дюйм, экран с экстрасисторной сверхплоской плотностью) – 192px x 192px (1.0) (5.33)