使用Glide将图片拉伸以适应ImageView

7

我想让一张图片适应我的图像视图。我正在使用Glide编程加载图像。它确实加载了图像,但是没有拉伸它来适应整个图像视图。它会在两侧留下空白,就像这样:

我想显示整张图片而不裁剪它,所以我不能使用

android:scaleType="centerCrop"

通过使用以下方式,可以将整个图像适配到我的图像视图中:

android:background="@drawable/image"

当我使用原生方式加载图片时,它会拉伸我的图片以适应整个 图像视图。但如果我使用 Glide 加载图片,该如何实现相同的效果?


你被给予了一个图片视图的高度和宽度wrap_content。 - user4571931
我可以,但我希望我的图像宽度适合整个屏幕,高度为250dp。 - Ashutosh Patoa
4个回答

14
我终于得到了答案。简单地使用

android:scaleType="fitXY"

在xml中像这样使用ImageView标签,并使用Glide或BitmapFactory加载图像,而不使用任何scaleType属性。

<ImageView
 android:id="@+id/image_view"
 android:layout_width="match_parent"
 android:layout_height="match_parent"
 android:scaleType="fitXY"/>

将图像加载到图像视图中

Glide.with(this).load(imageUrl).into((ImageView)findViewById(R.id.image_view));

2
这将缩放图像,如果图像的纵横比未知,则无法使用。 - Ajith M A

2
你可以使用centerCrop方法。
Glide.with(context).load(url).centerCrop().placeholder(R.drawable.default_image).into(img);     

2

如果您希望图片宽度适应并具有动态高度,而不裁剪内容,例如:像Instagram提供的一样,请将高度设置为wrap content,宽度设置为match parent,并将adjustViewBounds设置为true。

  <ImageView
        android:id="@+id/imageView"
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:minHeight="200dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent" />

0

试试这个,它可以将完整的图片居中显示

imageview.setScaleType(ScaleType.FIT_CENTER);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接