Android Glide 加载图片
0.借鉴文章地址:http://blog.csdn.net/zivensonice/article/details/51835802 和 http://www.cnblogs.com/zhaoyanjun/p/5404162.html
1.导包:compile 'com.github.bumptech.glide:glide:3.7.0'
2.基本用法
a.加载图片:1)加载URL图片:Glide.with(context).load(URL).into(mImageView);
2)加载SD卡里的图片-load(String string):Glide.with(context).load(Environment.getExternalStorageDirectory.getAbsolutePath() + "/temp.jpg").into(mImageView);
3)加载SD卡里的图片-load(File file):Glide.with(context).load(new File(Environment.getExternalStorageDirectory.getAbsolutePath() + "/temp.jpg")).into(mImageView);
4)加载SD卡里的图片-load(Uri uri):Glide.with(context).load(Uri.fromFile(new File(Environment.getExternalStorageDirectory.getAbsolutePath() + "/temp.jpg"))).into(mImageView);

b.设置加载过程中的图片:Glide.with(context).load(URL).placeHolder(mImageView1).into(mImageView2);
c.设置加载失败的图片:Glide.with(context).load(URL).erro(mImageView1).into(mImageView2);
d.设置切换图片淡入淡出的效果:Glide.with(context).load(URL).crossFade().into(mImageView);
e.切换图片有淡入淡出效果,设置效果持续时间:Glide.with(context).load(URL).crossFade(3000).into(mImageView);
f.设置改变图片大小:Glide.with(context).load(URL).override(int width, int height).into(mImageView);
g.设置图片加载动画:Glide.with(context).load(URL).animate(animate resource).into(mImageView);
h.设置图片加载优先级:Glide.with(context).load(URL).priority(Priority.LOW).into(mImageView);
Glide.with(context).load(URL).priority(Priority.HIGH).into(mImageView);
i.下载图片(必须加入asBitmap/asGIF):Glide.with(context).load(URL).asBitmap().into(new SimpleTarget<Bitmap>(){
@Override
public void onResourceReady(Bitmap resource, GlideAnimation<? super Bitmap> glideAnimation){
//保存方法
}
});
j.设置背景图片:Glide.with(context).load(URL).into(new SimpleTarget<Drawable>(int width, int height){
@Override
public void onResourceReady(Drawable resource, GlideAnimation<? super Drawable> glideAnimation){
//设置背景图片的方法,如:
btn.setBackground(resource);
}
});
k.设置加载图片监听器:Glide.with(context).load(URL).listener(new RequestListener<String, GlideBitmapDrawable>(){
@Override
public boolean onException(Exception e, String model, Target<GlideBitmapDrawable> target, boolean isFirstResource){
//此处为加载图片错误时的操作,返回true代表用户自己处理,返回false代表交给Glide处理
return false;
}
@Override
public voolean onResourceReady(GlideBitmapDrawable resource, String model, Target<GlideBitmapDrawable> target, boolean isFromMemoryCache, boolean isFirstResource){
//此处为资源准备好时调用的方法,返回true表示时间将会被拦截,不再继续传递下去;返回false表示事件会传递下去,一般为false
return false;
}
}).into(mImageView);
l.缩略图:1)先加载原图的十分之一作为缩略图,然后再加载原图:Glide.with(context).load(URL).thumbnail(0.1f).into(mImageView);
2)把本地图片作为缩略图,然后再加载原图:Glide.with(context).load(URL).thumbnail(Glide.with(context).load(image resource)).into(mImageView);
ps:基本组合使用,如有特殊需求,在后面直接使用对应的方法即可,如:Glide.with(context).load(URL).placeHolder(image resource).error(image resource).into(mImageView);
3.其他使用方法
a.清除内存缓存:Glide.get(context).clearMemory();
b.清除磁盘缓存:Glide.get(context).clearDiskCache();
4.说明
a.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生命周期控制
b.缓存
1)默认缓存:在Glide源码中有一个DiskCache接口,里面的Factory类定义了默认的磁盘缓存大小为:250 M , 缓存路径在:image_manager_disk_cache 目录下
2)四种缓存模式:
DiskCacheStrategy.SOURCE 缓存原图
DiskCacheStrategy.RESULT 缓存和imageview大小匹配的图
DiskCacheStrategy.ALL 既缓存原图,有缓存和imageview大小匹配的图
DiskCacheStrategy.NONE 不做任何缓存
Android 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.
- 演化理解 Android 异步加载图片(转)
演化理解 Android 异步加载图片(转)http://www.cnblogs.com/CJzhang/archive/2011/10/20/2218474.html
- Glide加载图片问题记录
Glide加载图片相比于Picasso而言性能较好,又比Fresco轻巧,而且又支持加载gif动图,是Google 推荐.专注平滑的滚动.简单易用.可扩展的一款图片加载框架.但是使用时还是会遇到一些问 ...
- Glide加载图片的事例
//获取图片的url String url = resultsEntity.getUrl(); //判断获取的图片是否存在 if (resultsEntity.getItemHeight() > ...
- Android中的Glide加载图片
注意:在Android Studio的项目的build.gradle中添加: compile 'com.github.bumptech.glide:glide:3.6.1' 然后同步一下 目录: 使用 ...
- android开发里跳过的坑——GridView使用Glide加载图片不显示
用grideview显示本地图片列表,用了Glide加载框架,具体调用如下: Glide.with(mContext).load(Uri.fromFile(file)).into(imageView) ...
- v关于使用Glide加载图片失败时显示自己特定的图片
Glide是Android加载图片的一个框架. 常用加载图片到imageView:Glide.with(this).load(url).into(ImageView imageview). 当加载失败 ...
随机推荐
- 014 链表中倒数第k个结点
1.题目 输入一个链表,输出该链表中倒数第k个结点. 2.思路 Java代码,通过校验.代码思路如下:两个指针,先让第一个指针和第二个指针都指向头结点,然后再让第一个指正走(k-1)步,到达第k个节点 ...
- Round#534 div.2-C Grid game
http://codeforces.com/contest/1104/problem/C 好厉害的题~ 只要把竖着的放在第一第二行,横着的放在第三/第四行就行. 哦吼,大半夜脑子迷糊地看英文的脑筋急转 ...
- Jupyter-notebook 不自动打开浏览器解决办法
我的系统是Manjaro Linux, 一直以来,我使用jupyter-notebook的办法都是使用命令sudo jupyer-notebook --allow-root,然后手动复制粘贴URLS到 ...
- 一次国际化记录以及平铺JSON数据
写这个方法的原因是因为我们需要改版国际化,因为相同的项目有其他分支做过国际化,但是主版本没有进行过国际化,目前需要修改主版本的国际化,但是因为国际化的方式做了结构上的调整所以写了这个工具方法方便去 ...
- python 进程间通信(上)
一 使用queue来实现进程间的内存共享 #_*_coding:utf-8_*_ from multiprocessing import Process,Queue import os,time d ...
- BigDecimal 准确的 double , float 计算
public class ArithUtil { private static final int DEF_DIV_SCALE = 10; private ArithUtil() { } /** * ...
- BZOJ.5092.[Lydsy1711月赛]分割序列(高维前缀和)
题目链接 \(Description\) \(Solution\) 首先处理\(a_i\)的前缀异或和\(s_i\).那么在对于序列\(a_1,...,a_n\),在\(i\)位置处分开的价值为:\( ...
- BZOJ.4009.[HNOI2015]接水果(整体二分 扫描线)
LOJ BZOJ 洛谷 又是一个三OJ rank1!=w= \(Description\) (还是感觉,为啥非要出那种题目背景啊=-=直接说不好么) 给定一棵树和一个路径集合(每条路径有一个权值).\ ...
- (转)RBAC权限模型——项目实战
一.前言 权限一句话来理解就是对资源的控制,对web应用来说就是对url的控制,关于权限可以毫不客气的说几乎每个系统都会包含,只不过不同系统关于权限的应用复杂程序不一样而已,现在我们在用的权限模型基本 ...
- 为什么很多应用都安装在/usr/local目录下?
首先,Linux的官方文档FHS对该目录的说明:http://www.linuxbase.org/betaspecs/fhs/fhs/ch04s09.html The /usr/local hiera ...