Android многоэкранный дизайн

Я понимаю, что есть много документации по проектированию поддержки нескольких экранов в Android. и я прочитал руководство по AndroidВот а также ряд подобных вопросов, таких какэтот

Однако я все еще немного сбит с толку относительно того, как мне следует реализовать это для моего приложения. Я планирую ориентироваться на следующие конфигурации устройств

enter image description here

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

Medium density Normal screens HVGA 320x480 (160dpi):

res/layout-mdpi (320 x 480 )
res/layout-land-mdpi (480 x 320 )

High density Normal screens WVGA800 480x800 (x854) (240 dpi)

res/layout-hdpi (480 x 800)
res/layout-land-hdpi (800 x 480)

Но как насчет средней плотности, устройств с большим экраном?

Я планирую использовать наборы как для рисования высокой, так и для средней плотности. Моя основная задача на этом раннем этапе - использовать подходящие фоновые изображения для каждого макета. Например, для поддержкиboth the 480x800 and 480x854 sizesЯ планирую просто использовать ImageView в качестве фона, например:

<ImageView
    android:id="@+id/imageView1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/bg"
    android:scaleType="center"/>

"Bg" рисовать всегда будет480x854 и с помощью:

android:scaleType="center"

Я надеюсь, что это позаботится о тех двух размерах экрана. При этом изображение сохраняет свой первоначальный вид, но центрируется на экранах 480x800. Я потеряю несколько пикселей на изображении, но пока изображение не масштабируется, это соответствует моим потребностям.

Я планирую иметь набор активов 320x480 для обычных экранов.

Я просто надеюсь, что следую правильной процедуре, поэтому я ценю любую информацию / советы от вас, ребята. заранее спасибо

 azgolfer02 июл. 2012 г., 02:47
Не уверен, что именно ваша проблема / вопрос, ваша ссылка и эта ссылкаdeveloper.android.com/guide/practices/screens_support.html должен помочь вам начать. Мой опыт работы с поддержкой нескольких размеров экрана заключается в том, что иногда вы не увидите проблему, пока у вас не будет действующего устройства для тестирования макетов. Кроме того, вам не хватает xhdpi, который все больше и больше новых устройств используют эту конфигурацию дисплея.

Ответы на вопрос(1)

Решение Вопроса

По моему опыту, вам действительно не нужно настраивать макет для экранов маленький / средний / большой / и т. Д., Если у вас есть чертежи для разных плотностей. Как сказано в документации, Android попытается правильно отобразить ваш макет на экранах разных размеров.

By default, Android resizes your application layout to fit the current device screen. In most cases, this works fine. In other cases, your UI might not look as good and might need adjustments for different screen sizes.

«Другие случаи»; применяется, только если вы действительно хотите изменить свой макет на больших экранах.

С помощьюandroid:scaleType="center" работает для меня, но, как вы сказали, он оставит пустое пространство вокруг вашего макета на больших экранах, если он будет помещаться и на меньших экранах. Если у вас полностью настроенное представление с «виджетами»; это должно быть точно расположено, и вы не хотите программно определять масштабирование и применять такое же масштабирование к вашим виджетам, это определенно правильный путь.

 elgoog02 июл. 2012 г., 15:34
Да, спасибо @Ibatteau, это, безусловно, хорошая информация. После некоторого прочтения, сосредоточение внимания на правильных активах плотности - путь вперед Андроид: scaleType = & quot; центр & quot; помогает мне для фонов 480x800 / 480x854 по крайней мере. Я принимаю этот ответ, хотя я надеюсь услышать еще несколько ответов, если это возможно, так что это закроет вопрос? Я относительно новичок на сайте :)
 02 июл. 2012 г., 21:33
Не беспокойтесь, принятие его не приведет к закрытию вопроса, другие всегда могут прокомментировать или добавить новые ответы. Немного разочаровывает, что @Raykud, представленный ниже, отвечает понижением голосов на каждый ответ, который я когда-либо давал :)

Ваш ответ на вопрос