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()
其实不等同于ImageView
的CENTER_INSIDE
而是FIT_CENTER
(它会把图片放大到至少一维匹配 ImageView
)。 Picasso 没有等同于 CENTER_INSIDE
的选项,但这些是最接近的选项:
- 您可以简单地删除
.fit().centerInside()
并让ImageView
缩小图像,如果它较大,但如果图像非常大,它会消耗大量内存(并且可能无法加载如果大于设备的最大纹理大小)。
- 您可以在手动测量
ImageView
的尺寸后使用 .resize(width, height).centerInside().onlyScaleDown()
。
如果您希望 Coil 像毕加索对 .fit().centerInside()
那样调整图像大小,则只需将 ImageView
的比例类型更改为 FIT_CENTER
。
第一个截图是 Picasso,第二个是 Coil(都是最新版本)。知道为什么会这样吗?
毕加索:fit().centerInside()
线圈:scale(Scale.FILL).crossfade(true)
(我也试过 FIT,结果相同)
ImageView:adjustViewBounds = true; scaleType = CENTER_INSIDE
具有 MATCH_PARENT 宽度和固定高度(以像素为单位)。
线圈会自动调整到 ImageView
的刻度类型,因此您无需配置刻度。
毕加索没有,毕加索的.fit().centerInside()
其实不等同于ImageView
的CENTER_INSIDE
而是FIT_CENTER
(它会把图片放大到至少一维匹配 ImageView
)。 Picasso 没有等同于 CENTER_INSIDE
的选项,但这些是最接近的选项:
- 您可以简单地删除
.fit().centerInside()
并让ImageView
缩小图像,如果它较大,但如果图像非常大,它会消耗大量内存(并且可能无法加载如果大于设备的最大纹理大小)。 - 您可以在手动测量
ImageView
的尺寸后使用.resize(width, height).centerInside().onlyScaleDown()
。
如果您希望 Coil 像毕加索对 .fit().centerInside()
那样调整图像大小,则只需将 ImageView
的比例类型更改为 FIT_CENTER
。