8

根据Coils 文档,我不必为我的图像进行任何配置fit()。问题是,ImageView没有正确加载:

这是我对ImageViewwith的配置Picasso

picasso.load(unsplashResult?.photoUrls?.thumbnailUrl)
                        .fit()
                        .error(R.drawable.img_placeholder)
                        .placeholder(R.drawable.img_placeholder)
                        .into(currentImageView)

这是代码Coil

currentImageView.load(unsplashResult?.photoUrls?.thumbnailUrl) {
                        placeholder(R.drawable.img_placeholder)
                        error(R.drawable.img_placeholder)
                    }

我的结果ImageView不一样。

这是Coil加载它们的方式:

在此处输入图像描述

这就是Picasso加载它们的方式:

在此处输入图像描述

问题是,我怎样才能达到相同的结果Coil

编辑

这是我的ImageView

<ImageView
            android:adjustViewBounds="true"
            android:id="@+id/ivUnsplashImage"
            android:src="@drawable/some_unsplash_img"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"/>
4

4 回答 4

6

基于此文件

您可以根据您的请求将 scaleType 设置为 centerCrop 或 scale(Scale.FILL) 来解决此问题。

https://coil-kt.github.io/coil/api/coil-base/coil.request/-request-builder/scale/

https://coil-kt.github.io/coil/api/coil-base/coil.size/-scale/

你是这样设置Scale类型的

view.load(chatMessageBean.thumb) {
       crossfade(750)
       placeholder(errorPlaceHolder)
       transformations(CircleCropTransformation())
       error(errorPlaceHolder)
       scale(Scale.FILL)
}
于 2019-09-05T07:03:51.437 回答
2

所以,根据迁移指南的答案应该是这样的;

imageView.scaleType = ImageView.ScaleType.FIT_CENTER

或者应该在 XML 中定义

android:scaleType="fitCenter"
于 2019-08-19T09:54:28.457 回答
0

只需删除android:adjustViewBounds="true"布局 XML 文件中的行。

于 2020-03-27T02:44:47.170 回答
0

正如我从文档中了解到的那样,您应该使用 ImageView.ScaleType

imageView.scaleType = ImageView.ScaleType.FIT_XY

或者你可以在你的 ImageView 的 xml 标签中使用它

android:scaleType="fitXY"

除了 FIT_XY,您也可以ImageView.ScaleType.CENTER_CROP根据需要使用。

于 2020-11-02T08:15:20.637 回答