Рекомендации по размерам изображения - PullRequest
0 голосов
/ 10 февраля 2012

Я пишу приложение, которое показывает много изображений (в настоящее время использует Галерею, но скоро отойдет от этого). Каждое изображение занимает весь экран, за исключением ActionBar вверху. Мое приложение будет иметь около 80 изображений в галерее.

Я хотел бы предоставить изображения подходящего размера для различных типов устройств, от небольших телефонов до более крупных планшетов. Я знаю, что могу использовать папки ldpi, mdpi и hdpi, но не знаю, какой размер создавать каждое изображение.

В данный момент я использую файлы .png, но я также не уверен, стоит ли мне использовать файлы .9.png, и нужно ли менять .png на .9.png и Android позаботится о масштабировании / перекосе.

Во время разработки я предоставляю своему приложению только изображения ldpi и hdpi. Я угадал в 640x680 (выход около 435k каждый) для ldpi и 768x1024 (выход около 1,2 м каждый) для hdpi. Я не доволен фактическими размерами файлов, которые получают эти размеры.

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

Пожалуйста, не говорите просто прочитайте http://developer.android.com/guide/practices/screens_support.html,, так как это говорит о разрешении, и я не могу понять, как это отразится на моей проблеме.

Заранее спасибо,

Mark.

1 Ответ

1 голос
/ 10 февраля 2012

Использование 9-патчей Drawables (.9.png) полезно только тогда, когда ваши изображения могут быть растянуты, не выглядя странно. Например, градиент может быть использован как 9-патч, но фотография не может, потому что пропорции будут растянуты. Android не может позаботиться о растяжении для вас, потому что ваши 9-патчи должны иметь области растяжения / отступа, которые определяются размещением черных пикселей в пределах 1 пикселя вокруг изображения ( см. Дополнительную информацию )

С точки зрения размеров вашего изображения это сложнее. Например, изображение, которое заполняло экран на устройстве mdpi размером с телефон (с разрешением экрана, скажем, 480x320), не заполнило бы экран на устройстве с планшетом mdpi (с разрешением экрана 1280x800), не передавая изображение вверх. Спецификаторы изображения в dpi предназначены для того, чтобы изображение и значки имели одинаковый размер физического на разных экранах.

Одной из идей может быть размещение изображений с максимальным разрешением, которое вы можете получить в папках drawable-nodpi (или assets). Затем найдите размер дисплея в пикселях (не зависящих от дисплея пиксели) и вычтите размер панели действий из высоты (которая составляет около 48 дп или 56 дп, я уверен, это сказано где-то в документации). Затем используйте BitmapFactory для декодирования изображения с размером дисплея, который вы нашли ранее ( этот ответ поможет в этом). Тем не менее, это, вероятно, будет довольно интенсивным процессором, поэтому не идеально Либо храните наборы изображений с определенными разрешениями на сервере, а когда ваш пользователь запускает приложение в первый раз, загружайте изображения, наиболее близкие к размеру экрана.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...