好吧,我进行了很多搜索,但是我仍然找不到如何使自己的视图始终具有相同比例的屏幕。可能是我使用错误的关键字进行搜索。
无论如何,我有3张图片。我想确保它们始终适合屏幕。它们目前的高度均为200dp,宽度为200dp。
在更宽的屏幕中,它们显示如下:
但是,在较小的屏幕中,它们显示如下:
如果图像尺寸减小,我完全可以,但是我必须始终在屏幕上显示所有3张图像。有任何想法吗?
答案 0 :(得分:0)
您可以通过在子视图上使用layout_weihth的垂直LinearLayout
来实现此目的。
<?xml version="1.0" encoding="utf-8"?>
<layout 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">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ImageView
android:id="@+id/first_image"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageView
android:id="@+id/second_image"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
<ImageView
android:id="@+id/third_image"
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"/>
</LinearLayout>
</layout>
答案 1 :(得分:0)
答案 2 :(得分:0)
您也可以使用ConstraintLayout和layout_constraintDimensionRatio属性来实现此目的,如下所示: 注意:我尚未测试以下代码,但应该可以正常工作。
<android.support.constraint.ConstraintLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/first_image"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="second_image"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"/>
<ImageView
android:id="@+id/second_image"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toTopOf="third_image"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="first_image"/>
<ImageView
android:id="@+id/third_image"
android:layout_width="0dp"
android:layout_height="0dp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="1:1"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="second_image"/>
</android.support.constraint.ConstraintLayout>