如何使视图始终分配相同的屏幕百分比?

时间:2019-02-28 06:45:56

标签: android svg

好吧,我进行了很多搜索,但是我仍然找不到如何使自己的视图始终具有相同比例的屏幕。可能是我使用错误的关键字进行搜索。

无论如何,我有3张图片。我想确保它们始终适合屏幕。它们目前的高度均为200dp,宽度为200dp。

在更宽的屏幕中,它们显示如下:

enter image description here

但是,在较小的屏幕中,它们显示如下:

enter image description here

如果图像尺寸减小,我完全可以,但是我必须始终在屏幕上显示所有3张图像。有任何想法吗?

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)

对于响应式设计,请尝试使用ConstraintLayout here并使用大小为here的sdp单位

答案 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>