
我正在使用GlIDe和RecyclerVIEw来加载许多具有不同尺寸和尺寸的图像(大约200个).
我有三个问题:
>图像有时加载成功,有时应用程序崩溃给OOM.
>如果图像加载成功,则滚动是滞后的.
>如果我刷新布局并重新加载相同的图像,那么它会尝试加载图像但在完成之前失败并给出OOM.
以下是相关代码:
public static class MyVIEwHolder extends RecyclerVIEw.VIEwHolder { @OverrIDe public voID onBindVIEwHolder(final MyVIEwHolder holder, final int Listposition) { ImageVIEw imageVIEw = holder.imageVIEw; GlIDe.with(imageVIEw.getContext()) .load(tweetMapArray.get(Listposition).get("imageURL").toString()) .diskCacheStrategy(diskCacheStrategy.ALL) .crossFade() .into(imageVIEw); // imageURL is a valID URL for each item } @OverrIDe public voID onVIEwDetachedFromWindow(MyVIEwHolder holder) { super.onVIEwDetachedFromWindow(holder); GlIDe.clear(holder.imageVIEw); }}请指导我做错了什么.我之前没有使用过如此多的图像.
解决方法:
我找到了原因.问题是我使用的是放在RecyclerVIEw上面的nestedScrollVIEw.这可能导致所有图像立即加载.
我删除了nestedScrollVIEw并请求了大约200张图片,现在它的工作非常流畅.
参考:Out Of Memory Error When loading more images in Glide
感谢您撰写回复.它们也很有用!
总结以上是内存溢出为你收集整理的使用android ReclerView滑行显示OutOfMemory Error(OOM)全部内容,希望文章能够帮你解决使用android ReclerView滑行显示OutOfMemory Error(OOM)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)