线圈ImageView不能完全适合

时间:2019-08-19 08:52:56

标签: android coil

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

这是我对ImageViewPicasso的配置:

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的加载方式如下:

enter image description here

这是Picasso加载它们的方式:

enter image description here

问题是,如何使用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 个答案:

答案 0 :(得分:1)

基于此文档

您可以通过根据需要将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)
}

答案 1 :(得分:0)

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

android:scaleType="fitCenter"

或者应该以XML定义

{{1}}

答案 2 :(得分:0)

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

答案 3 :(得分:0)

根据我对文档的了解,您应该使用ImageView.ScaleType

imageView.scaleType = ImageView.ScaleType.FIT_XY

或者您可以将其用于ImageView的xml标记中

android:scaleType="fitXY"

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