Совместимость размера экрана
Я только начинаю разработку Android. Моя IDE - это Android Studio, и сейчас я создаю собственное приложение для калькулятора. Я использовал экран Nexus 5X с диагональю 5,7 дюйма: мое приложение использует экран 5,7.
Единственная проблема, с которой я столкнулся, заключается в том, что когда я пытался использовать телефон моего друга с экраном 4.7, он выглядит примерно так: Мое приложение использует экран 4.7.
Я думал, что это приложение будет автоматически масштабировать все так же, как когда вы используете viewport для веб-разработки. Я веб-разработчик (html, php, javascript, css) и планирую перейти на Android-разработку для простоты использования. Есть ли способ исправить это, не перепроектировав все заново, ребята?
Спасибо и спокойствия.
3 ответа
Устройства Android имеют различные размеры и разрешения экрана. Вот почему обработка нескольких размеров экрана в Android является наиболее важной.
Посмотрите на это: https://stuff.mit.edu/afs/sipb/project/android/docs/guide/practices/screens_support.html
Фактический физический размер, измеряемый как диагональ экрана. Для простоты группы Android имеют четыре обобщенных размера: маленький, нормальный, большой и очень большой.
Чтобы настроить поддержку устройств разных размеров в Android, добавьте элемент в файл AndroidManifest.xml.
<?xml version="1.0" encoding="utf-8"?>
<manifest ..>
<supports-screens
android:smallScreens="true"
android:normalScreens="true"
android:largeScreens= "true"
android:anyDensity="true"
/>
<application... >
….
</application>
</manifest>
Разрабатывая наш пользовательский интерфейс для экранов разных размеров, мы обнаружим, что каждый дизайн требует минимального пространства.
res/layout/my_layout.xml // layout for normal screen size ("default")
res/layout-small/my_layout.xml // layout for small screen size
res/layout-large/my_layout.xml // layout for large screen size
res/layout-xlarge/my_layout.xml // layout for extra large screen size
res/layout-xlarge-land/my_layout.xml // layout for extra large in landscape
Мы также можем определить его на основе dp, например:
res/layout/main_activity.xml // For handsets
res/layout-sw600dp/main_activity.xml // For 7” tablets(600x1024 mdpi).600dp wide and bigger.
res/layout-sw720dp/main_activity.xml // For 10” tablets (720x1280 mdpi).720dp wide and bigger.
Шаги для создания различных макетов экрана:
Шаг 1: Сначала перейдите в режим " Android в проект " в Android-студии, измените ниже название проекта.
Шаг 2: Создайте папки для всех размеров экрана.
Шаг 3: создайте одинаковую разметку XML для всех этих папок.
При возникновении проблем совместимости экрана попробуйте использовать относительную компоновку с прокруткой, чтобы приложение было совместимо с планшетом и горизонтальной компоновкой.
У меня была та же проблема, и я использовал эту библиотеку, и она сделала это для меня.
Дело в том, что вам нужно просто заменить sp на ssp в вашем xml после добавления этой библиотеки в ваш gradle, и все будет хорошо.
Также для ширины и высоты я использовал эту библиотеку.
Просто замените dp весы на sdp.
Я также ответил на такой вопрос здесь, посмотрите.