图片框架Glide 的封装-->工具类

前言

图片加载框架有很多,例如很火的picsso和glide,一个项目中少不了的就是加载图片。今天就提供一个工具类供我们使用。

代码

public class GlideUtils {
    private static String RES_URL = ""  ;  //图片的url 地址 例如 : http://www.baidu,com/ + url 

    /**
     *  加载矩形图片文件到 imageview上
     * @param context 上下文
     * @param imageView  要加载到那个控件上
     * @param url  图片的url地址
     */
    public static void loadImageForUrl(Context context, ImageView imageView, String url) {
        RequestOptions options = new RequestOptions()
                .centerCrop()
//                .placeholder(R.drawable.default_pic)
                .error(R.drawable.default_pic)
                .priority(Priority.HIGH)
                .diskCacheStrategy(DiskCacheStrategy.NONE);

        Glide.with(context).load(RES_URL+"/"+url)
                .thumbnail(0.1f)
                .apply(options)
                .into(imageView);
    }

    /**
     *  加载图片文件到 imageview上
     * @param context 上下文
     * @param imageView  要加载到那个控件上
     * @param file  图片文件
     */
    public static void loadImageForFile(Context context, ImageView imageView, File file) {
        RequestOptions options = new RequestOptions()
                .centerCrop()
//                .placeholder(R.drawable.default_pic)
                .error(R.drawable.default_pic)                 //出错显示的图片
                .priority(Priority.HIGH)                     //优先级高
                .diskCacheStrategy(DiskCacheStrategy.NONE);  //禁止磁盘缓存

        Glide.with(context)
                .load(file)
                .thumbnail(0.1f)
                .apply(options)
                .into(imageView);
    }
    /**
     *加载成圆形图片
     * @param context 上下文
     * @param imageView  要加载到那个控件上
     * @param url  图片的 url
     */
    public static void loadCircleImageForUrl(Context context, ImageView imageView, String url){
        RequestOptions options = new RequestOptions()
//                .centerCrop()
//                .placeholder(R.drawable.default_pic)
                .error(R.drawable.geren)
                .circleCrop()
                .priority(Priority.HIGH)
                .diskCacheStrategy(DiskCacheStrategy.NONE);

        Glide.with(context).load(RES_URL+"/"+url).apply(options)
                .into(imageView);
    }

    /**
     * 
     * @param context 上下文
     * @param imageView  要加载到那个控件上
     * @param url  图片的 url
     */
    public static void loadFillImageForUrl(Context context, ImageView imageView, String url) {
        RequestOptions options = new RequestOptions()
//                .placeholder(R.drawable.default_pic)
                .error(R.drawable.default_pic)
                .priority(Priority.HIGH)
                .diskCacheStrategy(DiskCacheStrategy.NONE);
        Glide.with(context).load(RES_URL+"/"+url)
                .apply(options)
                .into(imageView);
    }
}

用法

  GlideUtils.loadCircleImageForUrl(Context, ImageView,Url);

直接使,很方便。第一个参数 :上下文
第二个参数: 要显示到哪个控件
第三个参数 : 图片的url 地址

glide 的其他 api

1.thumbnail(float sizeMultiplier). 请求给定系数的缩略图。如果缩略图比全尺寸图先加载完,就显示缩  
                                   略图,否则就不显示。系数sizeMultiplier必须在(0,1)之间,可以递归调用该方法。  
2.sizeMultiplier(float sizeMultiplier). 在加载资源之前给Target大小设置系数。  
3.diskCacheStrategy(DiskCacheStrategy strategy).设置缓存策略。DiskCacheStrategy.SOURCE:缓存  
                                   原始数据,DiskCacheStrategy.RESULT:缓存变换(如缩放、裁剪等)后的资源数据,  
                                   DiskCacheStrategy.NONE:什么都不缓存,DiskCacheStrategy.ALL:缓存SOURC和RESULT。  
                                   默认采用DiskCacheStrategy.RESULT策略,对于download only操作要使用DiskCacheStrategy.SOURCE。  
4.priority(Priority priority).     指定加载的优先级,优先级越高越优先加载,但不保证所有图片  
                                   都按序加载。枚举Priority.IMMEDIATE,Priority.HIGH,  
                                   Priority.NORMAL,Priority.LOW。默认为Priority.NORMAL。  
5.dontAnimate(). 移除所有的动画。  
6.animate(int animationId). 在异步加载资源完成时会执行该动画。  
7.animate(ViewPropertyAnimation.Animator animator). 在异步加载资源完成时会执行该动画。  
8.placeholder(int resourceId).    设置资源加载过程中的占位Drawable。  
9.placeholder(Drawable drawable). 设置资源加载过程中的占位Drawable。  
10.fallback(int resourceId).      设置model为空时要显示的Drawable。如果没设置fallback,  
                                  model为空时将显示error的Drawable,如果error的Drawable也没设置,  
                                  就显示placeholder的Drawable。  
11.fallback(Drawable drawable).设置model为空时显示的Drawable。  
12.error(int resourceId).设置load失败时显示的Drawable。  
13.error(Drawable drawable).设置load失败时显示的Drawable。  
14.listener(RequestListener<? super ModelType, TranscodeType> requestListener). 监听资源加  
                             载的请求状态,可以使用两个回调:onResourceReady(R resource, T model,  
                             Target<R> target, boolean isFromMemoryCache, boolean isFirstResource)  
                             和onException(Exception e, T model, Target<R> target, boolean isFirstResource)  
                             但不要每次请求都使用新的监听器,要避免不必要的内存申请,可以使用单例进行统一的异常监听和处理。  
15.skipMemoryCache(boolean skip). 设置是否跳过内存缓存,但不保证一定不被缓存  
                           (比如请求已经在加载资源且没设置跳过内存缓存,这个资源就会被缓存在内存中)。  
16.override(int width, int height). 重新设置Target的宽高值(单位为pixel)。  
17.into(Y target).设置资源将被加载到的Target。  
18.into(ImageView view).   设置资源将被加载到的ImageView。取消该ImageView之前所有的加载并释放资源。  
19.into(int width, int height).     后台线程加载时要加载资源的宽高值(单位为pixel)。  
20.preload(int width, int height).  预加载resource到缓存中(单位为pixel)。  
21.asBitmap(). 无论资源是不是gif动画,都作为Bitmap对待。如果是gif动画会停在第一帧。  
22.asGif().把资源作为GifDrawable对待。如果资源不是gif动画将会失败,会回调.error()。 

猜你喜欢

转载自blog.csdn.net/baidu_38477614/article/details/78871398
今日推荐