#android
#Android
Вопрос:
В настоящее время я разрабатываю дизайн для своего приложения для Android в Android studio 3. Мне нужна помощь в том, чтобы сделать размер кнопки адаптивным. Мне нужен XML или тег, который позволяет изменять размер кнопки в зависимости от процента от ширины или высоты экрана.
Комментарии:
1. Попробуйте использовать макет ограничений, поместите свою кнопку в макет ограничений, настройте на основе процентной ширины или высоты, тогда вы обнаружите, что он работает как адаптивный макет для любой платформы устройства.
Ответ №1:
Вы можете использовать линейные макеты:
<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>
Комментарии:
1. Ваше первое предложение — это именно то, что мне было нужно, но его нужно изменить для layout_width, я попытался сделать это следующим образом android:layout_width=»0dp», но он продолжает выдавать мне ошибку. Интересно, почему?
2. Установите ориентацию LinearLayout на горизонтальную вместо вертикальной и измените высоту кнопки на wrap_content. Также, как вы уже сделали, измените ширину кнопки на 0dp. Если я помог вам, пожалуйста, поддержите этот ответ, чтобы помочь другим пользователям.
3. Я также попробовал ваше 2-е предложение, и оно мне нравится больше. Но у меня только проблема. Кажется, я не могу добавить линейный макет внутри PercentFrameLayout. Что я должен для этого сделать?
Ответ №2:
вы можете достичь двух способов:
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