Создание адаптивного пользовательского интерфейса в Android

Я новичок в Android и Android Studio.

Я работаю над проектом, который должен быть оптимизирован для всех экранов.

Мое приложение работает в портретном режиме, поэтому я заблокировал альбомную ориентацию как перед запуском, так и в рабочем состоянии.

Теперь я в тупике. Я хочу знать, какой элемент важен в дизайне?

В статье я прочитал, что у меня должно быть 4 макета (маленький, нормальный, большой и большой) для моей деятельности, но когда я запускаю свое приложение в эмуляторе студии Android с размером экрана 5,0 дюйма, оно успешно работает, но когда я запускаю его на реальное устройство с 5,0-дюймовым экраном, мой макет не отображается полностью на экране.

В другой статье я прочитал, что для адаптивного дизайна я должен использовать все плотности (ldpi, mdpi, hdpi и т. д.).

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

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

В 99% случаев вам нужен только 1 макет для экрана, возможно, с несколькими значениями в разных значениях в зависимости от размера экрана. Но все зависит от того, чем вы занимаетесь. Этот вопрос слишком широк, чтобы на него можно было эффективно ответить.

Gabe Sechan 02.04.2019 21:31

Здравствуйте, я рекомендую вам прочитать этот developer.android.com/training/multiscreen/screensizes лучший способ создать свои папки для каждой плотности и размера экрана, чтобы избежать избыточных методов 64k (developer.android.com/studio/build/multidex.html?hl=ES#avoi‌​d) в вашем проекте и избежать наличия большего количества библиотек, чем вам действительно нужно.

Daniel Carreto 02.04.2019 21:33
0
2
1 467
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать эту библиотеку https://github.com/intuit/sdp для создания адаптивного макета, оптимизированного для всех экранов.

На самом деле он представляет новую единицу масштабирования, называемую sdp (масштабируемая dp).

Вот пример того, как его использовать после добавления зависимости в файл build.gradle.

<LinearLayout
        android:id = "@+id/give_us_a_review_landmine_main_layout"
        android:layout_width = "wrap_content"
        android:layout_height = "wrap_content"
        android:gravity = "center"
        android:orientation = "vertical"
        android:paddingBottom = "@dimen/_27sdp"
        android:paddingLeft = "@dimen/_43sdp"
        android:paddingRight = "@dimen/_43sdp"
        android:paddingTop = "@dimen/_50sdp" >

     <TextView
            android:layout_width = "wrap_content"
            android:layout_height = "wrap_content"
            android:text = "Intuit"
            android:textColor = "@android:color/black"
            android:textSize = "@dimen/_40sdp"/>

</LinearLayout>

В этом примере, как вы можете видеть, я использую sdp вместо dp.

Вы можете попробовать, и вы увидите, что даже textSize будет изменять размер в зависимости от вашего экрана и сохранять то же соотношение textSize/разрешение.

Я добавил пример и объяснил его.

Amine 02.04.2019 21:34

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