Подтвердить что ты не робот

Android UI Design: поддержка нескольких экранов

Я прочитал этот учебник ПОДДЕРЖКА МНОЖЕСТВЕННЫХ ЭКРАНОВ несколько раз и много вопросов о stackoverflow относительно Design Android UIs to fit well with all android screen sizes.

Но все еще борется за то, чтобы обеспечить одинаковое качество воспроизведения для всех размеров экрана.

Когда я разрабатываю интерфейсы, всегда учитываю следующую диаграмму. enter image description here

На данный момент в моем приложении он использует следующую структуру папок в папке res.

enter image description here

Также я использовал dp и sp единицы в файлах макета xml при определении размеров.

Малые размеры экрана

Когда речь заходит о небольших размерах экрана, они отлично относятся к пользовательским интерфейсам, определенным в layout-small, и отображаются без каких-либо проблем.

Нормальные размеры экрана

Когда я разрабатываю макеты для обычных размеров экрана (layout folder), я использовал 3.5 inches Android-устройство и 3.7 inches эмулятор, чтобы проверить, как выглядит пользовательский интерфейс при обычном размере экрана.

Таким образом, мои макеты выглядят превосходно в этом размере, но Samsung Gallaxy S3 (4.8 inches) и S4 (5.0 inches) имеют несколько более крупные экраны, и они по-прежнему относятся к обычным размерам экрана. Поэтому в этих больших экранах есть значительное пространство, оставшееся от дна, которое не используется, и пользовательский интерфейс выглядит не очень хорошо.

Также в файле манифеста я определил следующее:

<uses-sdk
    android:minSdkVersion="4"
    android:targetSdkVersion="17" />

<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:anyDensity="true" />

У меня нет проблем с плотностью изображения (drawable-hdpi/drawable-xhdpi/drawable-mdpi/drawable-ldpi)

(1). Интересно, что мне не хватает или что-то не так, как результат, особенно на больших экранах (4.8 дюйма), чтобы ссылаться на обычные макеты.

(2). Также, если кто-то может объяснить лучшие практики и стандартный способ определения структуры папок в папке Res, чтобы хорошо вписаться со всеми размерами экрана в android, был бы признателен это так запутанно. Благодарю.

4b9b3361

Ответ 1

Вместо того, чтобы использовать устройство размер дп вы можете использовать блок SDP размер, который по сравнению с размером экрана.

Используя блок размера sdp, вы будете иметь одинаковый пользовательский интерфейс на всех размерах экрана только с одним макетом xml.

Используйте его осторожно! например, в большинстве случаев вам все равно нужно разработать другой макет для планшетов.

Для размеров текстового вида см. блок размера ssp (на основе блока размера sp)

Ответ 2

Вы можете использовать следующие папки ресурсов для создания макетов для устройств с большими экранами:

7-дюймовые планшеты
res\layout-sw600dp

10-дюймовые планшеты
res\layout-sw720dp

Ответ 3

Если очень важно указать ту крайность, есть удобный инструмент для именования папок, и это цепочка. Ex. layout-w480dp-normal, и это будет размер экрана не менее 480dp по ширине и подпадает под категорию normal. Примечание. Мне не нужно было разрабатывать такие подробные требования, но, согласно источнику связи, он должен работать нормально.

Source

Обязательно следуйте этим правилам

Ответ 4

Для поддержки нескольких экранов:

  • Мобильный: Создайте папку с различными значениями, указанную ниже:

values                     (For mdpi devices)
values-hdpi                (For hdpi devices)
values-xhdpi               (For xhdpi devices)
values-xxhdpi              (For xxhdpi devices)
  1. Таблетки: Создайте другую папку макета, которая упоминается ниже:

layout-sw600dp             (For 7″ to 9″ Screen)
layout-sw720dp             (For 10″ to above screen)

Для ресурсов изображения: Создайте 4 папки:

drawable-mdpi
drawable-hdpi
drawable-xhdpi
drawable-xxhdpi

Ответ 5

Создайте различные макеты для разных экранов.

Рез/макета большой /

Рез/макет sw600dp/

ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

Найдите примеры и руководства по дизайну пользовательского интерфейса Android: http://www.viralandroid.com/2015/11/android-user-interface-ui-design-tutorial.html

Ответ 6

Обобщенные плотности.

A set of six generalized densities:
ldpi (low) ~120dpi
mdpi (medium) ~160dpi
hdpi (high) ~240dpi
xhdpi (extra-high) ~320dpi
xxhdpi (extra-extra-high) ~480dpi
xxxhdpi (extra-extra-extra-high) ~640dpi

Просто укажите папку для другого изображения, например:

drawable-large-xhdpi: copy (drawable-xxhdpi images)
drawable-xlarge-xhdpi: copy (drawable-xxxhdpi images)
drawable-xxhdpi: 1080x1920 slicing
drawable-xxxhdpi : 1440x25601 slicing

Добавить поддержку поддержки нескольких размеров экрана в манифесте.

 <supports-screens
        android:anyDensity="true"
        android:largeScreens="true"
        android:normalScreens="true"
        android:resizeable="true"
        android:smallScreens="true"
        android:xlargeScreens="true" />

Это работает для меня, чтобы поддерживать все планшеты, включая Nexus 9,10, и все устройства с разными разрешение и плотность