Ресурсы Android - какие разрешения следует указывать в каталогах hdpi, ldpi, mdpi и xhdpi - PullRequest
4 голосов
/ 12 марта 2011

Я пытаюсь написать приложение, которое будет хорошо работать на экранах любого размера, для этого у меня есть графический дизайнер, создающий изображения в запрошенном dpis для каждого каталога (Низкая плотность (120), ldpi, Средняя плотность ( 160), mdpi, высокая плотность (240), hdpi, сверхвысокая плотность (320), xhdpi), однако, они хотят знать, каким должно быть разрешение и соотношение сторон каждого изображения, после просмотра документации по Android, а именно: 1) http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources 2) http://developer.android.com/guide/practices/screens_support.html Я придумал следующую информацию: Не совсем то, что Android поддерживает 3 размера экрана, Android - это ОС, которая может работать практически на любом размере экрана, но есть некоторые размеры экрана, которые встречаются чаще, чем другие, это показано в таблице ниже (взято из http://developer.android.com/guide/practices/screens_support.html)

Таблица 1. Размеры экрана и плотность скинов эмулятора, включенных в Android SDK. Низкая плотность (120), ldpi средняя плотность (160), mdpi высокая плотность (240), hdpi сверхвысокая плотность (320), xhdpi Маленький экран QVGA (240x320)
Нормальный экран WQVGA400 (240х400) WQVGA432 (240x432) HVGA (320x480) WVGA800 (480x800) WVGA854 (480x854)
Большой экран WVGA800 * (480x800) WVGA854 * (480x854)
Очень большой экран

Стоит отметить, что, несмотря на то, что кажется, что нет никакой корреляции между этими размерами экрана, существует соотношение масштабирования 3: 4: 6 между тремя плотностями, поэтому битовая карта 9x9 в ldpi составляет 12x12 в mdpi и 18x18 в HDI (см. http://developer.android.com/guide/topics/resources/providing-resources.html#AlternativeResources).

Здесь мы можем увидеть больше информации о том, что означают размеры экрана:

Размер экрана • маленький: экраны в зависимости от свободного места на QVGA-экране низкой плотности. Что касается портретного HVGA-дисплея, он имеет такую ​​же доступную ширину, но меньшую высоту - он равен 3: 4 по сравнению с форматом изображения HVGA 2: 3. Примерами являются QVGA низкой плотности и VGA высокой плотности. • обычный: экраны на основе традиционного HVGA-экрана средней плотности. Экран считается нормальным, если он по крайней мере такого размера (независимо от плотности) и не больше. Примерами таких экранов являются WQVGA низкой плотности, HVGA средней плотности, WVGA высокой плотности. • большой: экраны в зависимости от свободного места на VGA-экране средней плотности. Такой экран имеет значительно больше доступного пространства как по ширине, так и по высоте, чем дисплей HVGA. Примерами являются экраны средней плотности VGA и WVGA. • xlarge: экраны, которые значительно больше, чем традиционные HVGA-дисплеи средней плотности. В большинстве случаев устройства с очень большими экранами будут слишком большими, чтобы их можно было носить в кармане, и, скорее всего, будут устройствами в стиле планшета. Добавлено в API уровня 9.

Мы также можем поддерживать определенные соотношения сторон, как определено здесь:

Экран аспект • длинные: длинные экраны, такие как WQVGA, WVGA, FWVGA • notlong: не длинные экраны, такие как QVGA, HVGA и VGA

- Однако всего этого недостаточно, чтобы ответить на простой вопрос о том, какое разрешение должно быть на этих изображениях - могут ли они все быть вырезаны из одного и того же изображения с высоким разрешением, или они должны быть переделаны для каждого т / д, поскольку соотношение сторон отличается ? пожалуйста помогите, это задерживает мой проект Спасибо!

Ответы [ 2 ]

6 голосов
/ 12 марта 2011

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

Для фоновых изображений это всегда довольно сложно.Поскольку вы не можете рассчитывать на конкретное разрешение, вы можете либо оценить и использовать одно, немного меньшее среднего, и превратить его в 9-патч, где края будут растягиваться, чтобы покрыть оставшееся пространство, или вы можете пойти содин немного больше среднего (что-то вроде 900 x 500) и просто убедитесь, что на краевой области нет нужной информации.По сути, думайте об этом как о кровотечении для печати, это просто дополнительная область, которая может быть обрезана, если экран недостаточно велик.Проще всего использовать какое-либо изображение с градиентным рисунком или другой независимый от разрешения тип изображения для фона, если это возможно, из-за большого количества различных поддерживаемых разрешений.

2 голосов
/ 16 ноября 2011

Когда я создаю графику, я думал об этом: ldpi 240x320 MDPI 320x480 HDP 480x800 xhdpi 800x1280

Размещение изображений в отдельных папках drawable, drawable-hdpi, drawable-mdpi ....

Фон немного сложен, вы можете сделать это с помощью bg или даже установить его из вашей программы, а не из файла макета XML. Это даст вам больше гибкости, чтобы выбрать погоду, которую вы собираетесь изменить, или обрезать ее.

...