Glide使用

来源:互联网 发布:淘宝推广管理在哪 编辑:程序博客网 时间:2024/04/29 20:14

开源项目Glide的使用

项目地址

  • https://github.com/bumptech/glide

了解Glide

  • 谷歌推出维护的一个图片加载开源框架
  • 不仅能实现平滑的图片列表滚动效果,还支持远程图片的获取、大小调整和展示,并且可以加载Gif动态图
  • Glide默认使用HttpUrlConnection进行网络请求,可配置,详细配置可以参考 https://github.com/bumptech/glide/wiki/Integration-Libraries

简单使用

Glide.with(MainActivity.this)        .load("http://xxxx")        .centerCrop()        .placeholder(R.mipmap.ic_launcher)        .into(imageView);

Glide的缓存基础

  • .skipMemoryCache(true) 跳过内存缓存,默认为false;当此时仍然会进行磁盘缓存
  • .diskCacheStrategy( DiskCacheStrategy.NONE ) 跳过磁盘缓存
  • 如果既要跳过内存缓存又要跳过磁盘缓存,上面两个配合使用即可

  • 磁盘缓存策略 - .diskCacheStrategy( DiskCacheStrategy.NONE )
    • DiskCacheStrategy.NONE 什么都不缓存
    • DiskCacheStrategy.SOURCE 仅仅只缓存原来的全分辨率的图像。
    • DiskCacheStrategy.RESULT 仅仅缓存最终的图像,即,降低分辨率后的(或者是转换后的)
    • DiskCacheStrategy.ALL 缓存所有版本的图像(默认行为)

  • 清除缓存
    • Glide.get(context).clearMemory(); 必须在UI线程中调用
    • Glide.get(applicationContext).clearDiskCache(); 必须在后台线程中调用,建议同时clearMemory()

简单封装

/** * Created by kushanmao on 2017/8/5. */public class ImageLoader {    /**     * 加载显示图片 缓存改变后的图片DiskCacheStrategy.RESULT     *     * @param context     * @param baseUrl     * @param iv     */    public static void showImageView(Context context, String baseUrl, ImageView iv) {        Glide.with(context)                .load(baseUrl)                .diskCacheStrategy(DiskCacheStrategy.RESULT)                .placeholder(R.drawable.hen)                .error(R.drawable.hen)                .into(iv);    }    /**     * 加载显示图片 缓存改变后的图片DiskCacheStrategy.RESULT     *     * @param context     * @param baseUrl     * @param iv     */    public static void showCenterCropImageView(Context context, String baseUrl, ImageView iv) {        Glide.with(context)                .load(baseUrl)                .centerCrop()                .diskCacheStrategy(DiskCacheStrategy.RESULT)                .placeholder(R.drawable.hen)                .error(R.drawable.hen)                .into(iv);    }    /**     * 加载显示圆形图片 缓存改变后的图片DiskCacheStrategy.RESULT     *     * @param context     * @param baseUrl     * @param iv     */    public static void showCircleImageView(Context context, String baseUrl, ImageView iv) {        Glide.with(context)                .load(baseUrl)                .bitmapTransform(new CropCircleTransformation(context))                .diskCacheStrategy(DiskCacheStrategy.RESULT)                .placeholder(R.drawable.hen)                .error(R.drawable.hen)                .into(iv);    }}