在Android中,我定义了一个ImageView的layout_width为fill_parent(它占用了手机的全宽度)。

如果我放入ImageView的图像大于layout_width, Android会缩放?那么高度呢?当Android缩放图像时,它会保持纵横比吗?

我发现在ImageView的顶部和底部有一些空白当Android缩放一个比ImageView大的图像时。这是真的吗?如果是,我如何消除空白?


当前回答

使用android:layout_gravity for ImageView:

android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_gravity="center_vertical|center_horizontal"
android:layout_weight="1"

上面的例子对我很有用。

其他回答

我有一个算法缩放位图,以最适合容器的尺寸,保持其纵横比。请在这里找到我的解决方案

希望这能帮助到路上的人!

如果图像质量在以下情况下下降: 使用

android:adjustViewBounds="true"

而不是

android:adjustViewBounds="true"
android:scaleType="fitXY"

对于你们中的任何人,想要图像精确地适应imageview适当缩放,不裁剪使用

imageView.setScaleType(ScaleType.FIT_XY);

imageView是代表你的imageView的视图

您可以缩放图像,这也将减少图像的大小。 你可以下载并使用它的库。 https://github.com/niraj124124/Images-Files-scale-and-compress.git

如何使用 1)导入压缩器-v1.0。Jar到您的项目。 2)添加下面的示例代码进行测试。 ResizeLimiter resize = ImageResizer.build(); 调整大小。scale("inputImagePath", "outputImagePath",imageWidth, imageHeight); 根据您的要求,还有更多的方法

快速回答:

<ImageView
        android:id="@+id/imageView"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="center"
        android:src="@drawable/yourImage"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />