2015-02-27 8 views
1

Я занимаюсь большой работой по компоновке Android. Я все еще не могу создать макет, работающий на каждом телефоне. Я не уверен, что лучше всего создать макет, так что поправьте меня, если я ошибаюсь. Есть три вещи, которые нужно иметь в виду:Размер и размер макета Android

  • экрана точек (разрешение, например, 1080x1920 пикселей)
  • Размер экрана «дюймов»
  • экрана дп плотности или называемый также точек на дюйм (дп является виртуальным разрешением, это правильно?)

чтобы нарисовать макет работы в каждом телефоне (мое приложение работает для телефонов) я должен создать каталог «layout- kindofdensity точек на дюйм для каждой плотности экрана (макет-ldpi, макет -mdpi, макет-ИПЧР, макет-xhdpi, макет-х xhdpi, layout-xxxhdpi) и рисовать «вручную» или мне нужно сделать что-то еще?

Я сделал тест, я создал эти 6 директорий и рисовал вручную для каждого разрешения. Это требует много времени, также устройство с разрешением 768x1280 мое приложение не уважает то, что я рисовал, например, пространства не соблюдаются, коллокации элементов не приводят к правильному, а макет кадра с ImageView внутри не масштабируется.

Что мне нужно делать? В некоторых Android-книгах не упоминается, что элементы не могут изменять размер, и обычно они объясняют, как помещать некоторый текст или изображение без анализа размера в каждом устройстве. Спасибо советов

ответ

2

Сначала вы должны найти подходящий тип макета для вашего UI (RelativeLayout или LinearLayout). Иногда использование хорошего макета (или вложенных макетов) может сделать пользовательский интерфейс хорошо выглядеть на каждом экране. Я предпочитаю LinearLayout Потому что я могу просто установить layout_weight для компонентов.

Затем установите различные размеры в файле dimens.xml для разных плотностей или размеров ведра.Как это:

enter image description here

И вы также можете использовать match_parent или wrap_content

Не забудьте установить ориентацию экрана вашей деятельности, если это не нужно поворачивать. Наличие одной ориентации облегчает проектирование.

Если вы не смогли создать хороший макет, используя подсказки выше, вы должны создать несколько макетов, чтобы они соответствовали каждому размеру экрана или плотности (размер и плотность экрана - это две разные вещи).

Вы должны найти лучший способ определить ваши экраны в соответствии с.

Ковш размера экрана (маленький, нормальный, большой и большой) выбирает макет, который подходит к экрану (или ближайшему), ковш плотности (ldpi, mdpi, hdpi, xhdpi, xxhdpi и xxxhdpi) выбирает макет согласно к плотности или наименьшей ширине (я думаю, что это почти то же самое, что плотность).

480 is the sw of these two devices

480dp является ЮЗ этих двух устройств

Вы можете сделать макеты для разных ориентаций экрана тоже.

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

0

Вы должны взглянуть на

http://developer.android.com/guide/practices/screens_support.html

http://developer.android.com/training/multiscreen/screensizes.html

http://developer.android.com/training/multiscreen/index.html

Я предложил бы использовать макет-swXXXdp или компоновки большой т.д., вместо макета-KindOfDensitydpi

Создайте свой рел с помощью RelativeLayout и использования весов LinearLayout. Не жесткий код какой-либо из позиций в макете

1

Использование

android:layout_width="match_parent" 
android:layout_height="match_parent" 

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

Кроме того, если в вашем пользовательском интерфейсе нет изменений, вам не нужно создавать разные папки макета.

См http://developer.android.com/training/multiscreen/screensizes.html

Смежные вопросы