Picasso 和 Coil 在图像尺寸方面不一致?

Picasso and Coil inconsistency in image sizing?

第一个截图是 Picasso,第二个是 Coil(都是最新版本)。知道为什么会这样吗?

毕加索:fit().centerInside()

线圈:scale(Scale.FILL).crossfade(true)(我也试过 FIT,结果相同)

ImageView:adjustViewBounds = true; scaleType = CENTER_INSIDE 具有 MATCH_PARENT 宽度和固定高度(以像素为单位)。

线圈会自动调整到 ImageView 的刻度类型,因此您无需配置刻度。

毕加索没有,毕加索的.fit().centerInside()其实不等同于ImageViewCENTER_INSIDE而是FIT_CENTER(它会把图片放大到至少一维匹配 ImageView)。 Picasso 没有等同于 CENTER_INSIDE 的选项,但这些是最接近的选项:

  • 您可以简单地删除.fit().centerInside()并让ImageView缩小图像,如果它较大,但如果图像非常大,它会消耗大量内存(并且可能无法加载如果大于设备的最大纹理大小)。
  • 您可以在手动测量 ImageView 的尺寸后使用 .resize(width, height).centerInside().onlyScaleDown()

如果您希望 Coil 像毕加索对 .fit().centerInside() 那样调整图像大小,则只需将 ImageView 的比例类型更改为 FIT_CENTER