敢说敢作敢为, 无怨无恨无悔。这篇文章主要讲述android glide的框架使用相关的知识,希望能为你提供帮助。
在android中,可能需要用来从网上获取图片的需求,那么这个功能用第三方框架是最好的,因为第三方框架为我们封装了很多的操作,比如glide框架,可以异步的加载图片,并且可以设置缓存方式和缩略图等一系列功能,下边就介绍下怎么使用。
首先添加gradle:
compile ‘com.github.bumptech.glide:glide:3.7.0‘
添加对应的权限,访问网络和访问本地存储:
< uses-permission android:name="android.permission.INTERNET" /> < uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
最简单的使用的方法:
Glide .with(this) .load("http://inthecheesefactory.com/uploads/source/nestedfragment/fragments.png") .into(imageView);
glide with的介绍:
- with(Context context). 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制。
- with(Activity activity).使用Activity作为上下文,Glide的请求会受到Activity生命周期控制。
- with(FragmentActivity activity).Glide的请求会受到FragmentActivity生命周期控制。
- with(android.app.Fragment fragment).Glide的请求会受到Fragment 生命周期控制。
- with(android.support.v4.app.Fragment fragment).Glide的请求会受到Fragment生命周期控制。
还可以设置在图像加载失败时显示的图像
Glide.with(this).load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg") .placeholder(R.drawable.ic_launcher) //设置占位图,在加载之前显示 .error(R.drawable.icon) //在图像加载失败时显示 .into(image);
在加载图像时,还可以设置图像显示的动画:
Glide.with(this).load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg") .placeholder(R.drawable.ic_launcher) .error(R.drawable.icon) .crossFade() //设置显示动画, .into(image);
crossFade()
有几种重载的方法crossFade(int duration)
:设置时间crossFade(Animation animation, int duration)
:设置自定义的动画和时间crossFade(int animationId, int duration)
: 加载动画资源和时间
缩略图
glide也可以设置缩略图,即先加载缩略图,然后再加载原图:Glide .with( context ) .load( UsageExampleGifAndVideos.gifUrl ) .thumbnail( 0.1f ) .into( imageView2 );
缓存我们都知道图像的处理和显示在Android中是最耗费内存的,很容易引起OOM的问题,一般在图像处理和显示时,都会使用缓存策略,内存缓存或硬盘缓存,在
Glide
中也提供了不同的缓存策略,默认的情况下会将显示的图像进行内存缓存,也可以设置不使用内存缓存,调用方法skipMemoryCache(true)
,就告诉Glide
我们不打算使用内存缓存,默认是使用内存缓存的Glide.with(this) .load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg") .skipMemoryCache(true) .into(image);
Glide
同时也提供了硬盘缓存,硬盘缓存的策略可以通过方法diskCacheStrategy()
来设定Glide.with(this) .load("http://ww4.sinaimg.cn/large/610dc034gw1f96kp6faayj20u00jywg9.jpg") .diskCacheStrategy(DiskCacheStrategy.SOURCE) //不使用硬盘缓存 .into(image);
硬盘缓存策略
DiskCacheStrategy.NONE
: 不使用硬盘缓存DiskCacheStrategy.SOURCE
: 将原始图像缓存在硬盘中DiskCacheStrategy.RESULT
: 将显示出来大小的图像缓存在硬盘(默认缓存策略)DiskCacheStrategy.ALL
: 显示的图像和原始图像都会缓存【android glide的框架使用】
推荐阅读
- 在Android studio模拟器中运行apk文件
- 安卓手机数据恢复软件-DiskDigger Pro
- 安卓build/core/Makefile 以及main.mk
- Spring ApplicationContext 容器实例化源码笔记之refresh04
- AIDL安卓接口定义语言
- Spring ApplicationContext 容器实例化源码笔记之refresh03
- SpringBoot-URL路由(@Controller和@RequestMapping)
- Android studio安装与配置
- android黑科技系列——解析公众号文章消息和链接文章消息自动打开原理