Glide使用

本文详细介绍Glide图片加载框架的使用方法及缓存策略。Glide由谷歌维护,不仅支持图片平滑滚动,还支持远程图片获取、大小调整、展示及GIF动图加载。文章提供了基本使用示例、缓存策略配置以及简单的封装方法。

开源项目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);
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值