Как лучше всего создавать макеты для всех размеров экрана и любой плотности экрана в Android

Основываясь на том, что я прочитал (включая официальную документацию), предлагается создавать отдельные макеты, отдельные чертежи, отдельные файлы dimens.xml для соответствия всем размерам экрана и плотности экрана, но из того, что я вижу, существует более 100 различных комбинаций. размер экрана / плотность экрана телефонов и создание уникальных макетов / рисунков для каждого из них практически невозможно.

Того же результата можно добиться, просто настроив один макет программно, однако такой подход вообще никто не предлагает. Почему?

Даже если я использую dp в макетах для определения размеров элементов, он все равно будет выглядеть по-разному на разных плотностях.

Допустим, у вас есть макеты для устройств с большим экраном и плотностью xhdpi. Делаете ли вы свое приложение доступным только для этих устройств? Кажется невероятным.

Как кто-то мог сделать приложение, которое подходило бы для всех размеров экрана/плотности экрана?

Должен быть оптимальный подход к созданию макетов для всех размеров экрана и любой плотности экрана, но какой? Я на самом деле ДЕЙСТВИТЕЛЬНО потерян. Может ли кто-нибудь предоставить простой проект, который как-то это делает?

Ссылка: Есть ли список разрешений экрана для всех телефонов и планшетов на базе Android?


person gmatcat    schedule 14.05.2018    source источник


Ответы (2)


У меня есть несколько решений для вас

  1. Используйте ConstraintLayout (https://developer.android.com/training/constraint-layout/)
  2. Используйте PercentRelativeLayout (https://developer.android.com/reference/android/support/percent/PercentRelativeLayout)
  3. Преобразователь SDP (https://github.com/intuit/sdp)

В моем случае. Я использую их все. Они могут работать и вместе.

person Tuan Nguyen    schedule 14.05.2018
comment
Я использовал Constraint Layout с конвертером sdp, но он не работает для маленьких экранов, есть идеи? - person Rucha Bhatt Joshi; 02.04.2019
comment
размер шрифта становится больше? - person Tuan Nguyen; 02.04.2019

Вы можете пойти на 2 вещи:

  1. Программная настройка высоты и ширины компонентов пользовательского интерфейса в зависимости от высоты и ширины экрана устройства.
  2. В xml используйте вес, а не фиксированную высоту и вес, поэтому все будет основано на соотношении.

Примечание. Вы не можете использовать оба этих параметра вместе.

person Koustuv Ganguly    schedule 14.05.2018