在 Android 中调整 ImageView 的大小以适应和使用全屏宽度
Resize ImageViews to fit and use full screen width in Android
如何让这两个(或更多)弹珠 (ImageView) 适合 Android 屏幕的整个宽度?
无论弹珠数是1颗还是12颗,都应始终使用全屏。
现在只有 1½ 个弹珠适合,因此需要调整大小!
总而言之,我希望能够根据需要添加尽可能多的 ImageView,并且它们应该自动调整大小以适应,但也使用整个 Android 显示宽度...
我的XML-代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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:background="@drawable/background_360x780_fireboxes"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="15dp"
android:paddingTop="15dp"
android:paddingEnd="15dp"
android:paddingBottom="15dp"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imgMarble1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_marble_dark_yellow_246x246" />
<ImageView
android:id="@+id/imgMarble2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
app:layout_constraintStart_toEndOf="@+id/imgMarble1"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_marble_dark_yellow_246x246" />
<Button
android:id="@+id/btnQuit"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginBottom="0dp"
android:backgroundTint="@color/teal_700"
android:onClick="quit"
android:text="@string/btn_quit"
android:textSize="32sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/btnPlay"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginEnd="25dp"
android:layout_marginBottom="0dp"
android:backgroundTint="@color/teal_700"
android:onClick="play"
android:text="@string/btn_play"
android:textSize="32sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
感谢@FilipeOliveira 的帮助:
从他上面的评论...
这就是在 Android 显示宽度内放置两个(或更多)弹珠 (ImageView) 的方式:
- 为每个大理石 (ImageView) 设置
width = 0dp
android:layout_width="0dp"
- 将 imgMarble1 的“Start”设置为“StartOf parent”,将“End”设置为“StartOf imgMarble2”
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/imgMarble2"
- 将 imgMarble2 的“Start”设置为“EndOf imgMarble1”,将“End”设置为“EndOf Parent”
app:layout_constraintStart_toEndOf="@+id/imgMarble1"
app:layout_constraintEnd_toEndOf="parent"
“这将创建一个链条,宽度将根据屏幕宽度自动调整大小。”
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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">
<ImageView
android:id="@+id/imgMarble1"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/imgMarble2"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/marble_dark_yellow_246x246" />
<ImageView
android:id="@+id/imgMarble2"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/imgMarble1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/marble_dark_yellow_246x246" />
如何让这两个(或更多)弹珠 (ImageView) 适合 Android 屏幕的整个宽度?
无论弹珠数是1颗还是12颗,都应始终使用全屏。
现在只有 1½ 个弹珠适合,因此需要调整大小!
总而言之,我希望能够根据需要添加尽可能多的 ImageView,并且它们应该自动调整大小以适应,但也使用整个 Android 显示宽度...
我的XML-代码:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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:background="@drawable/background_360x780_fireboxes"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingStart="15dp"
android:paddingTop="15dp"
android:paddingEnd="15dp"
android:paddingBottom="15dp"
tools:context=".MainActivity">
<ImageView
android:id="@+id/imgMarble1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_marble_dark_yellow_246x246" />
<ImageView
android:id="@+id/imgMarble2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="fitXY"
android:adjustViewBounds="true"
android:layout_marginStart="0dp"
android:layout_marginTop="0dp"
app:layout_constraintStart_toEndOf="@+id/imgMarble1"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/ic_marble_dark_yellow_246x246" />
<Button
android:id="@+id/btnQuit"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginStart="25dp"
android:layout_marginBottom="0dp"
android:backgroundTint="@color/teal_700"
android:onClick="quit"
android:text="@string/btn_quit"
android:textSize="32sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent" />
<Button
android:id="@+id/btnPlay"
android:layout_width="160dp"
android:layout_height="wrap_content"
android:layout_marginEnd="25dp"
android:layout_marginBottom="0dp"
android:backgroundTint="@color/teal_700"
android:onClick="play"
android:text="@string/btn_play"
android:textSize="32sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintStart_toStartOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
感谢@FilipeOliveira 的帮助:
从他上面的评论...
这就是在 Android 显示宽度内放置两个(或更多)弹珠 (ImageView) 的方式:
- 为每个大理石 (ImageView) 设置
width = 0dp
android:layout_width="0dp"
- 将 imgMarble1 的“Start”设置为“StartOf parent”,将“End”设置为“StartOf imgMarble2”
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/imgMarble2"
- 将 imgMarble2 的“Start”设置为“EndOf imgMarble1”,将“End”设置为“EndOf Parent”
app:layout_constraintStart_toEndOf="@+id/imgMarble1"
app:layout_constraintEnd_toEndOf="parent"
“这将创建一个链条,宽度将根据屏幕宽度自动调整大小。”
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.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">
<ImageView
android:id="@+id/imgMarble1"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintEnd_toStartOf="@+id/imgMarble2"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/marble_dark_yellow_246x246" />
<ImageView
android:id="@+id/imgMarble2"
android:layout_width="0dp"
android:layout_height="wrap_content"
app:layout_constraintStart_toEndOf="@+id/imgMarble1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:srcCompat="@drawable/marble_dark_yellow_246x246" />