Какой макет подходит для всех мобильных Android? - PullRequest
2 голосов
/ 13 марта 2012

Я занимаюсь разработкой одного приложения, сейчас я на стадии разработки.я проектирую один экран
на экране 3.7WVGA (Nexus One) в затмении с использованием линейной компоновки.но когда я проверяю его на 2.7
, некоторые из моих значков выходят за пределы экрана.Мой вопрос заключается в том, какой макет подходит для всех экранов, независимо от того, проектирую ли я его на 3,7 дюйма или запускаю на 2,7.
Пожалуйста, дайте мне предложение.
Заранее спасибо.
I design it in 3.7

it look like in 2.7

1-й я спроектировал его в 3,7 и второй в 2,7.

Ответы [ 7 ]

5 голосов
/ 13 марта 2012

Никогда, , никогда , , когда-либо . Дизайн экрана для Android на основе фактического размера экрана. Вы всегда облажаетесь, потому что есть сотни разных экранов. То, что хорошо выглядит на одном телефоне, будет выглядеть как дерьмо на другом. При этом, вот несколько советов:

  • Используйте RelativeLayout, чтобы выложить содержимое кнопки. Как только вы поймете модель, это станет намного проще, чем вы подозреваете, и вам будет легко автоматически масштабировать вещи.

  • Использовать фактические размеры в пикселях только для вещей, которые "плавают" Вы никогда не хотите указывать ширину чего-либо и пытаться заполнить ширину экрана.

  • Включите несколько разрешений ваших изображений. Позвольте системе выбрать правильное разрешение для вас.

  • Расположение таблицы / сетки облегчит вам общий дизайн.

  • Большие панели кнопок разыгрываются. В вашем распоряжении есть другие опции пользовательского интерфейса (кнопки меню, пролистывание экранов влево и вправо и т. Д.). Когда пользователи видят поле кнопок, создается впечатление, что приложение было соединено.

2 голосов
/ 13 марта 2012

Вы должны рассмотреть руководство, предоставляемое Android

Поддержка нескольких экранов

Что вы сделаете, так это предоставите значок для всех экранов, относящихся к разным экранам, и вы также можете указать макеты для разных экранов, например, вы хотите предоставить чертежи и макеты для нескольких экранов, вы будете предоставлять ресурсы в этой конкретной папке + суффикс ниже .

Screens      for layouts          for drawables

ldpi         layout-small         drawable-ldpi
mdpi         layout               drawable-mdpi
hdpi         layout-large         drawable-hdpi
xhdpi        layout-xlarge        drawable-xhdpi

Эта тема будет более соответствовать вашим потребностям.

2 голосов
/ 13 марта 2012

Для такого типа макета используйте GridView, если вы хотите, чтобы его можно было прокручивать, или просто RelativeLayout, если вы хотите, чтобы все элементы масштабировались в зависимости от размера экрана (используйте toRightOf, toLeftOf, above, below и weight для достижения этой цели)

1 голос
/ 15 февраля 2013

создайте макет таблицы, и каждая строка содержит вертикальный линейный макет, поместите все кнопки внутрь и обеспечивает вес каждой кнопки в соответствии с необходимостью, в конце поместите этот макет таблицы в ScrollView, который подходит для всех устройств Android

1 голос
/ 13 марта 2012

У меня та же проблема, но я нашел очень простое решение - использовать dp и sp вместо px. Вы можете прочитать это:

В чем разница между «px», «dp», «dip» и «sp» на Android?

И вы можете создавать иконки с разным разрешением и помещать их в подходящую папку.

1 голос
/ 13 марта 2012

Ниже приведены группы просмотра в Android. Вы можете использовать любой из них согласно вашему требованию. Но в вашем случае вы можете использовать GridView

Просмотр групп в android

  1. FrameLayout Layout, который действует как рамка просмотра для отображения одного объект.
  2. Галерея Горизонтальная прокрутка изображений с привязки список.
  3. GridView Отображает сетку прокрутки из m столбцов и n строк.
  4. LinearLayout Макет, который организует своих детей в единый горизонтальный или вертикальный ряд. Создает полосу прокрутки, если длина окно превышает длину экрана.
  5. ListView Отображает прокручиваемый список из одного столбца.
  6. RelativeLayout Позволяет указать местоположение дочерних объектов. относительно друг друга (ребенок A слева от ребенка B) или родительский (выровненный по верху родительского).
  7. ScrollView Вертикально прокручиваемый столбец элементов.
  8. Spinner Отображает один элемент за раз из связанного списка, внутри однорядное текстовое поле. Скорее, как список из одной строки, который можно прокручивать по горизонтали или по вертикали.
  9. SurfaceView Обеспечивает прямой доступ к выделенной поверхности для рисования. Он может содержать дочерние виды, расположенные сверху поверхности, но предназначен для приложений, которым необходимо рисовать пиксели, а не использовать виджеты.
  10. TabHost Предоставляет список выбора вкладок, который отслеживает клики и позволяет приложению изменять экран при каждом нажатии вкладки.
  11. TableLayout Табличный макет с произвольным количеством строк и столбцы, каждая ячейка содержит виджет по вашему выбору. Строки изменить размер, чтобы соответствовать наибольшему столбцу. Границы ячейки не видны.
  12. ViewFlipper Список, который отображает один элемент за раз, внутри однорядное текстовое поле. Это может быть установлено, чтобы поменять предметы через интервалы как слайд-шоу.
  13. ViewSwitcher То же, что и ViewFlipper.
0 голосов
/ 19 июля 2012

Я создал инструмент, который позволяет вам масштабировать / настраивать макеты для планшетов и устройств с небольшим экраном, и сделал пост в блоге об этом здесь: http://onemanmobile.blogspot.com/2012/04/how-to-scale-your-android-layouts-to.html

По сути, определения разметки в единицах измерения dp для одного размера недостаточно, если вы хотите, чтобы ваше приложение помещалось на всех устройствах и планшетах, поскольку есть четыре разных «блока плотности». Этот инструмент позволит преобразовать ваши макеты в подгонки под эти ковши плотности.

Более подробно объясняется, как сделать более гибкие макеты для всех разрешений.

...