Совместимость размера экрана

Я только начинаю разработку 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.

Я также ответил на такой вопрос здесь, посмотрите.

Другие вопросы по тегам