Подтвердить что ты не робот

Android: Поддержка множественной плотности изображения - ширина и ширина шкалы высоты?

У меня есть приложение для Android, которое я пытаюсь добавить для поддержки разных плотностей, размеров экрана и т.д. Я разработал приложение на симуляторе с поддержкой HVGA и использовал все значки из нашего приложения iphone, которое получилось приятным так как разрешение было 320x480. Все выглядит хорошо сейчас, но я немного смущен после прочтения официальной документации по Android. Для макетов я просматриваю и гарантирую, что все в единицах dp, но когда дело доходит до изображений, я теряюсь. Я знаю, что mdpi - 160, но что я могу сказать моему дизайнеру, каково должно быть изображение hdpi? Нужно ли увеличивать высоту, ширину и dpi? Или достаточно просто оставить dpi как есть и увеличить ширину высоты? Например, если у меня есть изображение 100 x 100 с разрешением 160 точек на дюйм, чтобы сделать его идентичным на экране hdpi, теперь оно должно быть 150 x 150 с разрешением 240 dpi? Предполагая, что если я оставлю dpi в 160, это будет немного размыто? Извините за глупый вопрос, но я просто хочу убедиться, что я все делаю правильно, и я действительно разработчик C без каких-либо графических навыков. Никаких оправданий, но я мог бы использовать некоторую помощь. Я видел несколько примеров, где заставка для mdpi была 320x480 при 160 dpi, но затем экран заставки hdpi был 480 x 800 на 240. Очевидно, что 480 x 1.5 не равно 800. Кроме того, после просмотра значков в sroid sroid, они увеличивают ширину и высоту, а не dpi. Наверное, потому что они значки и не нужно? Потеряли в земле фотошоп....

4b9b3361

Ответ 1

Для меня, как графического исполнителя компании Mobile Development, я сделал UI для Android в этом измерении:

HDPI: 640px x 960px в 300dpi, оптимизированный на 75%
MDPI: 640px x 960px в 300dpi оптимизировано на 50%
LDPI: 640 пикселей x 960 пикселей в 300 точек на дюйм, оптимизированный на 25%

Ответ 2

Взгляните на Предоставление ресурсов.

В разделе "Плотность пикселей экрана (dpi)" есть раздел. Вы правы, что просто масштабируете свою ширину и высоту для ресурсов. 90-пиксельное изображение в ldpi становится 120 px a mdpi, 180 при hdpi и 240 ad xhdpi.

Вы также правы, что 800 не 1,5 x базовая высота 480. Причиной этого является то, что все они являются приблизительными на основе целей для каждой плотности. Телефон os лежит на приложениях, работающих на нем, о его фактической высоте и ширине и масштабирует ресурсы в соответствии с точными размерами телефона, так как он может меняться. Это мое понимание.

Ответ 3

Недавно я решил эту проблему, создав много PNG разных размеров из векторного изображения SVG. Это отношения, которые я использовал для плотности пикселей экрана и размеров экрана:

  • ldpi: mdpi: hdpi: xhdpi: xxhdpi ↔ 3: 4: 6: 8: 12
  • sw320dp: sw360dp: sw480d: sw600dp: sw720dp ↔ 8: 9: 12: 15: 18

Объединяя эти два вместе, вы можете получить соотношение сторон размером 5 на 5, которое вам нужно, чтобы ваши ресурсы изображений выглядели великолепно на экранах большинства Android-устройств. Конечно, недостатком является то, что будет создано множество изображений, и размер вашего APK будет расти.

Обратитесь к http://aleakymemory.blogspot.com/2013/11/a-different-look-at-managing-android.html для соотношений размеров изображения в таблице.