概述
说到Glide的使用 就得说 Fresco,ImageLoader 和Picasso;
套用老话,ImageLoader 曾经的王者;现在应该应用很多使用的这个图片框架的产品。
Fresco ,faceBook出品,必是精品,说真的Fresco真是挺好得,就是代码体积大,代码入侵性比较强,在选择Glide和Fresco的时候,我一开始是很倾向Fresco的,但是当时的项目并不是从头开始,我尝试的改了部分,唉!真是受不了,然后选择了Glide。
Picasso 没用使用过,看了使用方法,和Glide大体相似,功能不如Glide强大,体积比Glide小。
轮到今天的主角了Glide,先说说用法吧
Glide.with(context).load(url).priority(Priority.LOW)。placeholder(defaultImg).error(defaultImg).into(imageView);
这就是Glide的用法 load()的参数,就是图片地址了,网络图片,本地,Assets等等都可以
加载SD卡的图片 load("file://"+filePath)
加载Assets load("file:///android_asset/"+fileName)
加载项目资源本地图片 load(ResourceId)
要是你在加载的是一张Gif动画 关键字asGif()
Glide.with(context).load(url).priority(Priority.LOW).asGif().placeholder(defaultImg).error(defaultImg).into(imageView);
placeholder() 的意思是正在加载的占位图
error()的意思加载出错的占位图
priority(Priority.LOW) 是图片质量优先级 有Low,NORMAL,HIGH,IMMEDIATE
大致的用法就是这样
说说遇到的问题吧 (Glide 均为3.7的版本)
1.java.lang.RuntimeException,Unable to destroy activity
大致的意思就是,不能在已经销毁的Activity中使用 就是with(context) 中的context,这就很烦了,百度一下就可以写成context.getApplicationContext(),这样就贯穿整个APP的生命周期不会崩溃了。
2.图片不显示,就是上述的的方法造成的context.getApplicationContext()加载的时候有时候会造成图片不显示 (我的Glide版本3.7),这个错误为解决,有解决的大神,请告知,这种错误,虽然不会造成崩溃,但是不显示图片也不好(有时候出现,有时候有好了,复现几率大),建议在哪些图片使用多的地方,维护好自己context,不要用,getApplicationContext();部分可以用。
3.个人认为Glide对那个圆形,圆角的图片支持不好,就是那个bitmapTransform的的编写,增加写了个圆角,显示看出来明显感觉有一个正方形的框框(圆形也是如此),而且在RecycleView快速滑动时,圆角竟然会变没了,变成普通ImageView的样子。这就很尴尬,(没有解决)
4.Glide 对自定义ImageView 支持不太好,比如:CircleImageView,圆形图片placeholder(defaultImg),就会无效。尴尬!
5.就是当遇到列表滑动时(如:RecycleView,Listview,Scrollview等等),需要自己实现滑动停止加载(Glide.with(context).pauseRequests();),停止滑动时 恢复加载(Glide.with(context).resumeRequests()),这就很烦人了,但遇到一些嵌套布局,比如 Scrollview 嵌套RecycleView ,有可能RecycleView的那个滑动机制就不能使用了,但是SCrollview的滑动貌似只能监听滑动,不能监听停止。今天就写到这了
最后
以上就是大方项链为你收集整理的android glide assets,Android Glide 的使用(老生常谈,还是XXX)的全部内容,希望文章能够帮你解决android glide assets,Android Glide 的使用(老生常谈,还是XXX)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复