使用版本4.8.0,我遇到了我见过的最奇怪的错误之一。
我正在使用宽度为1080像素,高度为1940像素的OnePlus 3,尽管这在每部手机中都会发生。
通话:
RequestManager glide = Glide.with(ContextHelper.Companion.castActivityFromContext(getContext()));
glide
.load(imageUrl)
.error(glide.load(element.getFullImageUrl()))
.listener(new RequestListener<Drawable>() {
@Override
public boolean onLoadFailed(@Nullable GlideException e, Object model, Target<Drawable> target, boolean isFirstResource) {
return false;
}
@Override
public boolean onResourceReady(Drawable resource, Object model, Target<Drawable> target, DataSource dataSource, boolean isFirstResource) {
return false;
}
})
.into(new CustomNotFlickeringViewCustomTarget(imageBanner));
(监听器用于调试)
CustomNotFlickeringViewCustomTarget
在哪里:
open class CustomNotFlickeringViewCustomTarget(private val imageView: ImageView) : CustomViewTarget<ImageView, Drawable>(imageView) {
override fun onLoadFailed(errorDrawable: Drawable?) {}
override fun onResourceCleared(placeholder: Drawable?) {
imageView.setImageDrawable(placeholder)
}
override fun onResourceReady(resource: Drawable, transition: Transition<in Drawable>?) {
imageView.setImageDrawable(resource)
}
}
当我尝试加载 1440w x 2160h 的图像时,它将返回以下resource
:
这是可以理解的。 1196
的宽度略大于1080,但加载平稳。
现在,当我尝试加载 1440w x 298h 时,这就是我得到的资源。具体一个8669
宽度
很明显,我的图片有width = MATCH_PARENT
和height = WRAP_CONTENT
。我不指定高度,因为它的变量。
这是导致到内存中的问题。
为什么从远程(从远程,从缓存)加载的图像比原始大小大?