В настоящее время я разрабатываю дизайн для своего приложения для Android в Android Studio 3. Мне нужна помощь в адаптации размера кнопки. Мне нужен xml или тег, который позволяет изменять размер кнопки в зависимости от процента ширины или высоты экрана.
двумя способами вы можете достичь:
1.Use constraint layout
2.use SDP library to set height width value from library
get sdp library from this link
https://github.com/intuit/sdp
Main use of this library the values will change corresponding scren size
Вы можете использовать линейные макеты:
<LinearLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical">
<!-- 30% height button -->
<Button
android:layout_width = "wrap_content"
android:layout_height = "0dp"
android:layout_weight = "0.3" />
</LinearLayout>
Или попробуйте Библиотека процентной поддержки
implementation 'com.android.support:percent:28.0.0'
<android.support.percent.PercentFrameLayout
android:layout_width = "match_parent"
android:layout_height = "match_parent"
android:orientation = "vertical">
<!-- 30% height button -->
<Button
android:layout_width = "wrap_content"
app:layout_heightPercent = "30%" />
</android.support.percent.PercentFrameLayout>
Ваше первое предложение - это именно то, что мне нужно, но оно должно изменить размер для layout_width, я пытался сделать это так, как android:layout_width = "0dp", но оно продолжает выдавать мне ошибку. Интересно, почему?
Установите ориентацию LinearLayout на горизонтальную вместо вертикальной и измените высоту кнопки на wrap_content. Также, как вы уже сделали, измените ширину кнопки на 0dp. Если я помог вам, пожалуйста, поддержите этот ответ, чтобы помочь другим пользователям.
Я также попробовал ваше второе предложение, и оно мне нравится больше. Но у меня только проблема. Кажется, я не могу добавить линейный макет внутри PercentFrameLayout. Что я должен сделать для этого?
Попробуйте использовать Constraints Layout, поместите свою кнопку внутри ограничивающего макета, настройте на основе ширины или высоты в процентах, и вы обнаружите, что он работает как адаптивный макет для каждой платформы устройства.