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 加载图片的更多相关文章

  1. Android Glide加载图片时转换为圆形、圆角、毛玻璃等图片效果

     Android Glide加载图片时转换为圆形.圆角.毛玻璃等图片效果 附录1简单介绍了Android开源的图片加载框架.在实际的开发中,虽然Glide解决了快速加载图片的问题,但还有一个问题悬 ...

  2. RoundedImageView使用吐槽心得(RoundedImageView与Glide加载图片,第一次加载无法圆角问题)

    最近使用的时候发现一个问题, RoundedImageView与Glide搭配使用的时候,第一次加载图片(内存中没有),后图片无法圆角,后来尝试各种改,最后想到了一个办法,就是让Glide加载图片的 ...

  3. Glide加载图片缓存库出现——You cannot start a load for a destroyed activity

    请记住一句话:不要再非主线程里面使用Glide加载图片,如果真的使用了,请把context参数换成getApplicationContext.

  4. 演化理解 Android 异步加载图片(转)

    演化理解 Android 异步加载图片(转)http://www.cnblogs.com/CJzhang/archive/2011/10/20/2218474.html

  5. Glide加载图片问题记录

    Glide加载图片相比于Picasso而言性能较好,又比Fresco轻巧,而且又支持加载gif动图,是Google 推荐.专注平滑的滚动.简单易用.可扩展的一款图片加载框架.但是使用时还是会遇到一些问 ...

  6. Glide加载图片的事例

    //获取图片的url String url = resultsEntity.getUrl(); //判断获取的图片是否存在 if (resultsEntity.getItemHeight() > ...

  7. Android中的Glide加载图片

    注意:在Android Studio的项目的build.gradle中添加: compile 'com.github.bumptech.glide:glide:3.6.1' 然后同步一下 目录: 使用 ...

  8. android开发里跳过的坑——GridView使用Glide加载图片不显示

    用grideview显示本地图片列表,用了Glide加载框架,具体调用如下: Glide.with(mContext).load(Uri.fromFile(file)).into(imageView) ...

  9. v关于使用Glide加载图片失败时显示自己特定的图片

    Glide是Android加载图片的一个框架. 常用加载图片到imageView:Glide.with(this).load(url).into(ImageView imageview). 当加载失败 ...

随机推荐

  1. 重启部署在阿里云上的huginn

    背景,因为重新编译安装了gcc,不知怎么服务器上的huginn就停了, 因为之前是安装在docker上的,服务器重启之后需要:1.启动dockerservice docker start2.命令创建h ...

  2. [LeetCode] Largest Sum of Averages 最大的平均数之和

    We partition a row of numbers A into at most K adjacent (non-empty) groups, then our score is the su ...

  3. [Codeforces Round #433][Codeforces 853C/854E. Boredom]

    题目链接:853C - Boredom/854E - Boredom 题目大意:在\(n\times n\)的方格中,每一行,每一列都恰有一个被标记的方格,称一个矩形为漂亮的当且仅当这个矩形有两个角是 ...

  4. 19 ArcGIS Server 备份与恢复

    一.备份过程 1.找到已经安装的arcgis server安装目录,并找到备份工具: 2.快捷键win + R启动cmd,将备份工具文件拖入cmd窗口,enter 3. 通过backup.py脚本进行 ...

  5. JavaScript基础知识(Math的方法)

    Math的方法 Math : 对象数据类型 : Math: {} 是window下的一个键值对: 属性名叫Math,属性值是一个对象 var obj = {a:1}; console.log(obj. ...

  6. HDU 6311 Cover (无向图最小路径覆盖)

    HDU 6311 Cover (无向图最小路径覆盖) Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/ ...

  7. 在linux服务器新添加硬盘,如何识别、挂载。

    在linux服务器新添加硬盘,如何识别.怎样挂载磁盘.过程是怎么样. fdisk - manipulate disk partition tablemkfs - build a Linux files ...

  8. ASO的效果应该如何去评判,有什么标准可以量化指标

    ASO的效果应该如何去评判,有什么标准可以量化指标 以往我们主要会教大家怎么做 ASO 优化,优化中有什么技巧……在掌握ASO优化技巧之后,从执行层面来考虑,就该选择流量平台了. 目前市场上的流量平台 ...

  9. 2018-2019-2-20175303 实验二 《Java开发环境的熟悉》实验报告

    2018-2019-2-20175303 实验二 <Java开发环境的熟悉>实验报告 姓名:柴轩达       学号:20175303     班级:1753       实验课程:JAV ...

  10. ip通信第七周

    局域网的优点:1.具有较高的数据传输率 2.具有较低的误码率 3.具有较低的时延 4.能进行广播 网桥的基本特征:1.网桥在数据链录层上实现局域网互连 2.网桥能够互连两个采用不同数据链路层协议,不同 ...