【发布时间】:2021-12-27 05:56:02
【问题描述】:
我已经使用毕加索很久了。今天,我正在迁移到 Glide。在毕加索,我曾经使用以下加载模式:
Picasso.get()
.load(file)
.resize(targetSize, 0)
.onlyScaleDown()
.placeholder(R.color.default_surface)
.error(R.color.default_surface_error)
.into(imageView)
根据resize(int, int)文档,
使用 0 作为所需的尺寸来调整大小以保持纵横比
根据onlyScaleDown()文档,
仅当原始图像大小大于resize(int, int)指定的目标大小时才调整图像大小
这是我正在尝试的:
Glide.with(imageView)
.log(this, thumbnailUrl?.toString())
.load(thumbnailUrl)
.override(600)
.placeholder(R.color.default_surface)
.error(R.color.default_surface_error)
.into(imageView)
Glide 在使用DownsampleStrategy.CENTER_OUTSIDE 加载图像时使用默认的下采样策略。它说图像被放大以匹配覆盖的大小,使得其中一个维度(最小?)等于覆盖的大小。并且,以下评论:
缩放,保持原始纵横比,使图像的一个尺寸正好等于请求的尺寸,而另一个尺寸大于或等于请求的尺寸。
如果请求的宽度和高度大于源宽度和高度,此方法将放大。为避免升级,请使用 {@link #AT_LEAST}、{@link #AT_MOST} 或 {@link #CENTER_INSIDE}。
DownsampleStrategy.java 中的选项让我很困惑。我不知道我应该使用哪一个。我希望大图像缩小到覆盖的大小,而小图像永远不要放大。如何在 Glide 中实现这一点?
【问题讨论】:
标签: android picasso android-glide