【发布时间】:2021-06-16 09:19:39
【问题描述】:
我正在尝试将ImageView 的内容调整为与另一个ImageView 的内容相同的尺寸。例如,假设我有以下两个图像,其中一个是水平方向的,另一个是垂直方向的:
垂直图像:
水平图像:
我想将垂直图像调整为水平图像,如下所示:
最重要的是,ImageViews的尺寸和内容要一致,如下图ImageView的横屏截图:
我尝试为水平ImageView 检索BitMap 的尺寸,并将垂直ImageView 的BitMap 重新缩放为水平BitMap,但为BitMap 检索的尺寸始终显示原始水平照片的尺寸,而不是按比例缩放以适应水平ImageView 的照片尺寸。
以下是我迄今为止工作的代码:
activity_main.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:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/slider_screen_photo_layout"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dip"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
tools:ignore="MissingConstraints">
<ImageView
android:id="@+id/slider_screen_image_1_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="370dp"
android:scaleType="fitStart"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@+id/slider_screen_image_2_box"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxHeight="370dp"
android:scaleType="matrix"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</FrameLayout>
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity.java(检索 ImageView 的水平位图尺寸):
ImageView sliderPreviewBox = null;
if (photoNum == 1) {
sliderPreviewBox = findViewById(R.id.slider_screen_image_1_box);
}
if (photoNum == 2) {
sliderPreviewBox = findViewById(R.id.slider_screen_image_2_box);
}
Drawable drawable = sliderPreviewBox.getDrawable();
int width = drawable.getIntrinsicWidth();
int height = drawable.getIntrinsicHeight();
【问题讨论】: