Glide加载图片问题记录
Glide加载图片相比于Picasso而言性能较好,又比Fresco轻巧,而且又支持加载gif动图,是Google 推荐、专注平滑的滚动、简单易用、可扩展的一款图片加载框架。但是使用时还是会遇到一些问题。
1、同时和RoundedImageView使用时,又恰巧RoundedImageView设置了圆角或者圆形,那么在很多手机上会出现,开始有圆角,滑动过去再返回时,圆角消失了。所以加载圆形时还是配合GlideCircleTransform使用比较稳妥。
2、我们在加载的时候一般会设置占位符 ,我们会加一个placeholder (loadingImage)如下
Glide.with(mContext).load(path).placeholder(loadingImage).error(errorImageView).into(mImageView);
但是会发现一直显示占位符的图片,不显示path 的路径, 这个原因应该是缓存问题。只要加上dontAnimate() 或者把Placeholder (loadingImage)的loadingimage 换成mImageview.getdrawable如下:
Glide.with(mContext).load(path).placeholder(loadingImage).dontAnimate().error(errorImageView).into(mImageView);
3、加载gif时,不可以配合使用RoundedImageView,否则gif只能显示成图片。
还有,敲重点!!!在性能比较好的新手机上,可以正常的流畅的播放 但是在性能比较差的旧手机就不行了 有很明显的卡顿现象。
然后百度找原因:glide gif 卡 发现大部分都是以 .diskCacheStrategy(DiskCacheStrategy.SOURCE) 就解决了,但是有的手机加上还是mi有用啊。 So,无奈。glide在除了gif加载外适用还是比较好的。
4、友盟上经常报出很多关于Glide的崩溃,如下
You cannot start a load for a destroyed activity
at com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:134)
at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:125)
at com.bumptech.glide.Glide.with(Glide.java:641)
究其原因,因为Glide是一个网络请求, 会在子线程中进行网络请求,我刚进入程序,Glide还正在子线程中请求数据,这是我就把MainActivity干掉了(onDestroy),Glide没有提前中止请求,所以就崩溃了呀。所以在使用之前还是先加个判断吧:
if (context != null) {
Glide.with(context).load(url).error(default_image).crossFade().into(imageView);
} else {
Log.e(TAG, "Picture loading failed,context is null");
}
所以,使用Glide请注意完美规避以上坑。
By LiYing
Glide加载图片问题记录的更多相关文章
- Android Glide加载图片时转换为圆形、圆角、毛玻璃等图片效果
Android Glide加载图片时转换为圆形.圆角.毛玻璃等图片效果 附录1简单介绍了Android开源的图片加载框架.在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬 ...
- RoundedImageView使用吐槽心得(RoundedImageView与Glide加载图片,第一次加载无法圆角问题)
最近使用的时候发现一个问题, RoundedImageView与Glide搭配使用的时候,第一次加载图片(内存中没有),后图片无法圆角,后来尝试各种改,最后想到了一个办法,就是让Glide加载图片的 ...
- Glide加载图片缓存库出现——You cannot start a load for a destroyed activity
请记住一句话:不要再非主线程里面使用Glide加载图片,如果真的使用了,请把context参数换成getApplicationContext.
- Glide加载图片的事例
//获取图片的url String url = resultsEntity.getUrl(); //判断获取的图片是否存在 if (resultsEntity.getItemHeight() > ...
- Glide加载图片到自定义的圆形ImageView中不显示
当使用自定义的圆形ImageView时,发现使用Glide加载并设置默认初始图片时,自定义的ImageView一直显示默认图片,无法更新到加载的图片. 使用下面代码可以解决这个问题 Glide.wit ...
- Glide 加载图片
//通过model获取到图片的url,将Url转换成bitmap对象: //设置不保存内存和硬盘缓存, 1 Glide.with(mContext).load(model.getVideoUrl()) ...
- ListView或GridView的Adapter使用Glide加载图片异常
报错信息为:You must not call setTag() on a view Glide is targeting 原因就是View使用setTag后导致Glide之前请求的标记被清除,强制转 ...
- Android中的Glide加载图片
注意:在Android Studio的项目的build.gradle中添加: compile 'com.github.bumptech.glide:glide:3.6.1' 然后同步一下 目录: 使用 ...
- Android Glide 加载图片
0.借鉴文章地址:http://blog.csdn.net/zivensonice/article/details/51835802 和 http://www.cnblogs.com/zhaoyanj ...
随机推荐
- LeetCode之Weekly Contest 91
第一题:柠檬水找零 问题: 在柠檬水摊上,每一杯柠檬水的售价为 5 美元. 顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯. 每位顾客只买一杯柠檬水,然后向你付 5 美元.10 ...
- 小试nginx日志分析xlog
nginx配置: http { #...其他配置 log_format tpynormal '$remote_addr | [$time_local] | $host | "$request ...
- 使用 Python 编写登陆接口
# 使用 Python 编写登陆接口# Create Date: 2017.10.31 Tuesday# Author: Eric Zhao# -*- coding:utf-8 -*-'''编写登陆接 ...
- Nordic Collegiate Programming Contest 2015 E. Entertainment Box
Ada, Bertrand and Charles often argue over which TV shows to watch, and to avoid some of their fight ...
- Sublime插件开发——简单的代码模板插件
最近一段一直使用sublime进行golang开发,整体感觉很不错,虽然比不上eclipse之类IDE强大,但是用起来很轻巧便捷,开发golang完全做够了.由于有一部分代码复用率很高,经常要用到,而 ...
- HDU 3488 KM Tour
参考题解 这题注意有重边.. #include <cstdio> #include <cstring> #include <algorithm> using nam ...
- 模拟 - BZOJ 1510 [POI2006] Kra-The Disks
BZOJ 1510 [POI2006] Kra-The Disks 描述 Johnny 在生日时收到了一件特殊的礼物,这件礼物由一个奇形怪状的管子和一些盘子组成. 这个管子是由许多不同直径的圆筒(直径 ...
- ThreeJs 3D 全景项目开发总结
本文来自网易云社区 作者:唐钊 项目背景 那是在一个毫无征兆的下午,我还沉浸在 vue 的世界中,突然编辑跑过来说N的新官网想做一些3D全景的东西,一开始其实我的内心是拒绝的,一是没怎么实质性做过 W ...
- mysql-学习链接
http://www.cnblogs.com/lyhabc/p/3691555.html
- Django Rest Framework 教程及API向导
Django Rest Framework 教程及API向导. 一.请求(Request)REST_FRAMEWORK 中的 Request 扩展了标准的HttpRequest,为 REST_FRAM ...