水平图像的 ImageView 缩放问题

Posted

技术标签:

【中文标题】水平图像的 ImageView 缩放问题【英文标题】:ImageView scaling issues with horizontal image 【发布时间】:2021-12-22 05:02:03 【问题描述】:

我在 imageview 中缩放图像时遇到了一些问题。下面是部分代码:

<androidx.constraintlayout.widget.ConstraintLayout
            android:id="@+id/dimension_ratio_container"
            android:layout_
            android:layout_
            app:layout_constraintTop_toTopOf="parent"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintDimensionRatio="1:1">

            <com.ortiz.touchview.TouchImageView
                android:id="@+id/editor_second_image"
                android:layout_
                android:layout_
                android:adjustViewBounds="true"
                android:scaleType="center"
                android:background="@color/gray_toolbar"
                app:layout_constraintStart_toEndOf="@id/editor_divider"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintEnd_toEndOf="parent"/>

            <View
                android:id="@+id/editor_divider"
                android:layout_
                android:layout_
                android:background="@color/black"
                android:visibility="invisible"
                app:layout_constraintEnd_toEndOf="parent"/>

            <com.ortiz.touchview.TouchImageView
                android:id="@+id/editor_first_image"
                android:layout_
                android:layout_
                android:scaleType="center"
                android:adjustViewBounds="true"
                android:background="@color/mainGreen"
                app:layout_constraintEnd_toStartOf="@+id/editor_divider"
                app:layout_constraintTop_toTopOf="parent"
                app:layout_constraintBottom_toBottomOf="parent"
                app:layout_constraintStart_toStartOf="parent"/>

我希望图像缩放同时保持其参数,并且我可以移动或缩放它。我使用 TouchImageView。问题是,如果我将带有专辑方向的图像放在第一个图像视图中,我将有这样的东西:

但是第二个 imageview 使用相同的参数设置了我想要的图像:

我该如何解决?

【问题讨论】:

【参考方案1】:

这是我如何在没有 scaleType="fitXY" 的情况下将图像拉伸到全屏或图像视图的解决方案,因为它会损坏图像。使用以下库。

[一个简单的图像视图,以给定的比例缩放宽度或高度]

https://github.com/santalu/aspect-ratio-imageview

要查找设备屏幕的纵横比,请使用以下代码。

DisplayMetrics metrics =this.getResources().getDisplayMetrics();
float ratio = ((float)metrics.heightPixels / (float)metrics.widthPixels);

【讨论】:

以上是关于水平图像的 ImageView 缩放问题的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio:缩放 ImageView 边界以适应图像

UIImageView 缩放图像问题

在图像视图上绘制矩形。图像无法正确缩放 - iOS

android:如何在imageview的水平中心对齐图像?

Android ImageView 大小不随源图像缩放

为啥添加ScrollView时ImageView Image Zoomed?