我正在使用ConstraintLayout
开发一个Android应用。它可以在不同的屏幕尺寸上正常显示,但是,我希望textviews的大小和元素之间的间距增加,以利用较大屏幕手机上的较大屏幕空间。
我已经读到可以为不同的密度或大小(xxhdpi,xhdpi)创建不同的XML布局,但是我认为ConstraintLayout
相对于相对布局的主要优势之一是它可以调整间距/大小自动。您可以使用约束布局来做到这一点,还是需要为每个屏幕尺寸/密度创建单独的xml布局?谢谢!
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
tools:layout_editor_absoluteY="81dp">
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="8dp"
android:layout_marginBottom="19dp"
android:backgroundTint="@color/colorAccent"
app:layout_constraintBottom_toTopOf="@+id/inView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/lbsView"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/weightView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="27dp"
android:layout_marginTop="21dp"
android:layout_marginEnd="14dp"
android:text="Weight:"
android:textSize="26sp"
app:layout_constraintEnd_toStartOf="@+id/weight"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
这是我的约束布局的示例。
答案 0 :(得分:0)
将边距值放在dimens.xml
中,您可以在其中调整不同屏幕尺寸的大小,例如values-hdpi
,values-xhdpi` ..
在values-hdpi/dimens.xml
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<dimen name="spinner_margin_top">16dp</dimen>
</resources>
在values-xhdpi/dimens.xml
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<dimen name="spinner_margin_top">20dp</dimen>
</resources>
在您的xml文件中:
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="@dimen/spinner_margin_top"
.... />
答案 1 :(得分:0)
您可以使用[-smallestWidth]值来为tex设置不同的大小。
SW:屏幕的基本尺寸,由可用屏幕区域的最短尺寸表示。具体来说,设备的MinimumWidth是屏幕可用高度和宽度中的最短宽度(您也可以将其视为屏幕的“最小可能宽度”)。您可以使用此限定符来确保,不管屏幕当前的方向如何,您的应用程序的UI至少具有dps宽度可用。
示例: 让我们考虑一下3种不同的布局:小,中,大
values : <dimen name="text_size">10sp</dimen>
values-sw375 : <dimen name="text_size">11sp</dimen>
values-sw600 : <dimen name="text_size">18sp</dimen>
答案 2 :(得分:0)