Платформы Android для нескольких экранов

Я работаю над Android-приложением, для которого мы настроены для всех размеров экрана? Как мне сделать мои макеты? Должен ли я сделать другой layout.xml для каждого типа экрана или есть ли какой-нибудь другой «эффективный» способ делать что-то?

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

Основные правила:

  • Используйте wrap_content, fill_parent или dp unit (вместо px) при указании размеров в файле макета XML
  • Не используйте AbsoluteLayout
  • Не используйте жестко закодированные значения пикселей в коде.
  • Используйте ресурсы плотности и / или разрешения
  • На практике, даже если ваш макет будет работать на планшетах, вы также захотите предоставить различные макеты для этих сверхбольших устройств, чтобы улучшить работу пользователей.

Измените свои скриншоты.

 <ImageButton android:id="@+id/btnSubmit" android:src="@drawable/submit" android:layout_height="22dp" android:layout_width="85dp" android:layout_marginTop="15dp" android:layout_below="@+id/confirmpassword" android:layout_centerInParent="true" /> 

Вы указываете здесь два вертикальных ограничения, которые могут плохо взаимодействовать друг с другом. Вместо layout_centerInParent попробуйте layout_centerHorizontal.

Вы также можете дать гравитацию = «top | center_horizontal» для вашего RelativeLayout. Таким образом, по умолчанию элементы центрируются по горизонтали и привязаны к вершине.

Также попробуйте выровнять btnSignin username ниже btnSignin вместо имени username . Возможно, вам повезет.

RelativeLayout – самый сложный макет для использования. Если вы не можете получить это правильно через некоторое время, вы можете просто решить отказаться от использования комбинаций вложенных LinearLayout

Для пейзажного и портретного режима вы можете использовать разные xmls, если вам нужно отображать экран в соответствии с ориентациями. Я использую этот метод для своих приложений. Что касается поддержки нескольких экранов, вы можете перейти с относительной компоновкой в ​​качестве родительского узла. Не используйте абсолютную компоновку.

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

Intereting Posts
Повторение изображения при прокрутке в виде сетки Android с помощью универсального загрузчика изображений Сосредоточьтесь на EditText в ListView, когда потомки блоков (Android) Может ли кто-нибудь объяснить мне волшебство за FindViewById (1) или FindViewById (2)? Ошибка: не удалось выполнить: com.google.android.gms: play-services-measurement: 9.2.0 SetParameters () не работает, несмотря на настройку размера предварительного просмотра Ошибка при использовании StatusBarManagerService – java.lang.SecurityException на android.permission.STATUS_BAR_SERVICE Установите плагин ADT в Eclipse Очистить буфер обмена на Android Как определить EOF для передачи файлов Android в Android? Phonegap Android Webview Video воспроизводит только аудио Как определить, запущено ли какое-либо собственное приложение в android Android – показать кнопку меню на галактике nexus Функция «Экономия заряда батареи» убивает мой музыкальный сервис Как изменить размер элемента Java Script для его окна контейнера WebView и localhost