写点什么

Glide 的简单封装 GlideUtils

发布于: 2021 年 11 月 07 日

0.设置动态转换


api 提供了比如:centerCrop()、fitCenter()等


public static void loadImageViewCrop(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).centerCrop().into(mImageView);


}


11.设置动态 GIF 加载方式


public static void loadImageViewDynamicGif(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).asGif().into(mImageView);


}


12.设置静态 GIF 加载方式


public static void loadImageViewStaticGif(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).asBitmap().into(mImageView);


}


13.设置监听请求接口


设置监听的用处 可以用于监控请求发生错误来源,以及图片来源 是内存还是磁盘


public static void loadImageViewListener(Context mContext, String path, ImageView mImageView, RequestListener<String, GlideDrawable> requstlistener) {


Glide.with(mContext).load(path).listener(requstlistener).into(mImageView);


}


14.设置要加载的内容


项目中有很多需要先下载图片然后再做一些合成的功能,比如项目中出现的图文混排


public static void loadImageViewContent(Context mContext, String path, SimpleTarget<GlideDrawable> simpleTarget) {


Glide.with(mContext).load(path).centerCrop().into(simpleTarget);


}


15.清理磁盘缓存


public static void GuideClearDiskCache(Context mContext) {


//理磁盘缓存 需要在子线程中执行


Glide.get(mContext).clearDiskCache();


}


16.清理内存缓存


public static void GuideClearMemory(Context mContext) {


//清理内存缓存 可以在 UI 主线程中进行


Glide.get(mContext).clearMemory();


}


当然,我们后续肯定会功能越来越多的,我把项目开源在 Github 上了,为了使用起来方便自己封装了下,同时也分享以下


GlideUtils 源码:


package com.liuguilin.gankclient.util;


/*


  • 项目名: GankClient

  • 包名: com.liuguilin.gankclient.util

  • 文件名: GlideUtils

  • 创建者: LGL

  • 创建时间: 2016/10/20 16:45

  • 描述: Glide 封装


*/


import android.content.Context;


import android.widget.ImageView;


import com.bumptech.glide.Glide;


import com.bumptech.glide.Priority;


import com.bumptech.glide.load.engine.DiskCacheStrategy;


import com.bumptech.glide.load.resource.drawable.GlideDrawable;


import com.bumptech.glide.request.RequestListener;


import com.bumptech.glide.request.target.SimpleTarget;


public class GlideUtils {


/**


  • Glide 特点

  • 使用简单

  • 可配置度高,自适应程度高

  • 支持常见图片格式 Jpg png gif webp

  • 支持多种数据源 网络、本地、资源、Assets 等

  • 高效缓存策略 支持 Memory 和 Disk 图片缓存 默认 Bitmap 格式采用 RGB_565 内存使用至少减少一半

  • 生命周期集成 根据 Activity/Fragment 生命周期自动管理请求

  • 高效处理 Bitmap 使用 Bitmap Pool 使 Bitmap 复用,主动调用 recycle 回收需要回收的 Bitmap,减小系统回收压力

  • 这里默认支持 Context,Glide 支持 Context,Activity,Fragment,FragmentActivity


*/


//默认加载


public static void loadImageView(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).into(mImageView);


}


//加载指定大小


public static void loadImageViewSize(Context mContext, String path, int width, int height, ImageView mImageView) {


Glide.with(mContext).load(path).override(width, height).into(mImageView);


}


//设置加载中以及加载失败图片


public static void loadImageViewLoding(Context mContext, String path, ImageView mImageView, int lodingImage, int errorImageView) {


Glide.with(mContext).load(path).placeholder(lodingImage).error(errorImageView).into(mImageView);


}


//设置加载中以及加载失败图片并且指定大小


public static void loadImageViewLodingSize(Context mContext, String path, int width, int height, ImageView mImageView, int lodingImage, int errorImageView) {


Glide.with(mContext).load(path).override(width, height).placeholder(lodingImage).error(errorImageView).into(mImageView);


}


//设置跳过内存缓存


public static void loadImageViewCache(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).skipMemoryCache(true).into(mImageView);


}


//设置下载优先级


public static void loadImageViewPriority(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).priority(Priority.NORMAL).into(mImageView);


}


/**


  • 策略解说:

  • <p>

  • all:缓存源资源和转换后的资源

  • <p>

  • none:不作任何磁盘缓存

  • <p>

  • source:缓存源资源

  • <p>

  • result:缓存转换后的资源


*/


//设置缓存策略


public static void loadImageViewDiskCache(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).diskCacheStrategy(DiskCacheStrategy.ALL).into(mImageView);


}


/**


  • api 也提供了几个常用的动画:比如 crossFade()


*/


//设置加载动画


public static void loadImageViewAnim(Context mContext, String path, int anim, ImageView mImageView) {


Glide.with(mContext).load(path).animate(anim).into(mImageView);


}


/**


  • 会先加载缩略图


*/


//设置缩略图支持


public static void loadImageViewThumbnail(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).thumbnail(0.1f).into(mImageView);


}


/**


  • api 提供了比如:centerCrop()、fitCenter()等


*/


//设


《Android学习笔记总结+最新移动架构视频+大厂安卓面试真题+项目实战源码讲义》
浏览器打开:qq.cn.hn/FTe 免费领取
复制代码


置动态转换


public static void loadImageViewCrop(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).centerCrop().into(mImageView);


}


//设置动态 GIF 加载方式


public static void loadImageViewDynamicGif(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).asGif().into(mImageView);


}


//设置静态 GIF 加载方式


public static void loadImageViewStaticGif(Context mContext, String path, ImageView mImageView) {


Glide.with(mContext).load(path).asBitmap().into(mImageView);


}


//设置监听的用处 可以用于监控请求发生错误来源,以及图片来源 是内存还是磁盘


//设置监听请求接口


public static void loadImageViewListener(Context mContext, String path, ImageView mImageView, RequestListener<String, GlideDrawable> requstlistener) {


Glide.with(mContext).load(path).listener(requstlistener).into(mImageView);


}


//项目中有很多需要先下载图片然后再做一些合成的功能,比如项目中出现的图文混排


//设置要加载的内容


public static void loadImageViewContent(Context mContext, String path, SimpleTarget<GlideDrawable> simpleTarget) {


Glide.with(mContext).load(path).centerCrop().into(simpleTarget);


}


//清理磁盘缓存


public static void GuideClearDiskCache(Context mContext) {


//理磁盘缓存 需要在子线程中执行


Glide.get(mContext).clearDiskCache();


}


//清理内存缓存


public static void GuideClearMemory(Context mContext) {

评论

发布
暂无评论
Glide的简单封装GlideUtils