нет волшебной палочки для поддержки всех размеров экрана, это зависит от dimens.xml
файлов с различной плотностью, например: вы задаете некоторую высоту и ширину вида 100dp
и тестируете это на низком и высоком разрешении экрана, но почему dp? px = dp * (dpi / 160)
из уравнения dp - это физическое соотношение количества пикселей на экране и точек на дюйм, где 1dp = 160px
, как на экране 160 точек, и соответственно разные телефоны имеют разные dpi
точки нечистоты на дюйм
mdpi -> 1dp = 1px
hdmpi -> 1dp = 1.5px
xdpi -> 1dp = 2px
xxdpi -> 1dp = 3px
xxxdpi -> 1dp = 4px
поэтому, чтобы сделать заявление правильным и понятным, вам нужно установить разницу dps на основе разрешения экрана, чтобы соответствовать пропорции пикселей, которую должен иметь dp
Я использую очень красивый инструмент на Android Studio под названием
Dimenify
найдите плагины и установите их, затем перезапустите android studio
и используйте его как:
- Navigate to the android studio dimension file
- Point the cursor to any dimen you've create
- Right click > Generate > "Generate alternate dimens.."
я предпочитаю следующее отображение mdpi 0.8, hdpi 1.0, xhdpi 1.2, xxhdpi 1.4, xxxhdpi 1.6
настроить как вам нравится