0

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

毕加索:fit().centerInside()

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

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

毕加索

线圈

4

1 回答 1

1

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

Picasso 没有,而且 Picasso's.fit().centerInside()实际上不等同于ImageView'sCENTER_INSIDE而是 to FIT_CENTER(它会放大图像以使至少一个维度与 相匹配ImageView)。没有CENTER_INSIDE与毕加索等效的方法,但这些是最接近的选择:

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

如果您希望 Coil 以与 Picasso 相同的方式调整图像大小.fit().centerInside(),则只需将 的比例类型更改ImageViewFIT_CENTER

于 2020-07-30T15:27:43.173 回答