Glide 图片加载工具类

来源:互联网 发布:韩顺平java水平如何 编辑:程序博客网 时间:2024/05/17 09:44

写一个工具类以后自己用 ,有需要的朋友自己拿 ,项目没有用那么多,就写了一部分,剩下的需要自己取消注释,还比较全,

  Build.gradle   

compile 'com.github.bumptech.glide:glide:3.7.0'


package com.cdl.imagelocder;import android.content.Context;import android.net.Uri;import android.widget.ImageView;import com.bumptech.glide.Glide;import com.bumptech.glide.load.engine.DiskCacheStrategy;import com.cdl.R;import java.io.File;/** * cdl 图片加载类 */public class ImageLoader {    /***     * 加载通用de网络图片     * @param context     * @param imageUrl     * @param imageView     */    public static void loadImage(Context context, String imageUrl, ImageView imageView) {        loadImagePlaceholder(context, R.mipmap.ic_launcher, imageUrl, imageView);    }    /***     * 加载图片,使用占位符     * @param context     * @param imageUrl     * @param imageView     */    public static void loadImagePlaceholder(Context context, int defauleImage, String imageUrl, ImageView imageView) {        loadImageWidthError(context, defauleImage, R.mipmap.error_load, imageUrl, imageView);    }    /***     * 使用占位符,加载失败有显示失败的图片     * @param context     * @param defauleImage     * @param errorImage     * @param imageUrl     * @param imageView     */    public static void loadImageWidthError(Context context, int defauleImage, int errorImage, String imageUrl, ImageView imageView) {        Glide.with(context).load(imageUrl).placeholder(defauleImage).error(errorImage).into(imageView);    }    /***     * 加载视屏缩略图     * @param context     * @param videoPath     * @param imageView     */    public static void loadVideoThumImage(Context context, String videoPath, ImageView imageView) {        Glide.with(context).load(Uri.fromFile(new File(videoPath))).into(imageView);    }    //7.缓存策略,跳过内存缓存    public static void loadImageSkiCache(Context context, String imageUrl, ImageView imageView) {        Glide.with(context).load(imageUrl).skipMemoryCache(true).into(imageView);    }    //跳过硬盘缓存//    DiskCacheStrategy.NONE 什么都不缓存//    DiskCacheStrategy.SOURCE 仅仅只缓存原来的全分辨率的图像//    DiskCacheStrategy.RESULT 仅仅缓存最终的图像,即降低分辨率后的(或者是转换后的)//    DiskCacheStrategy.ALL 缓存所有版本的图像(默认行为)    public static void loadImageSkiStrategy(Context context, String imageUrl, ImageView imageView) {        Glide.with(context).load(imageUrl).diskCacheStrategy(DiskCacheStrategy.NONE).into(imageView);    }//    8.优先级,设置图片加载的顺序://    Glide.with(context).load(imageUrl).priority( Priority.HIGH).into( imageView);//    9.获取Bitmap,设置CircleImageVIew可以使用这个ImageView库//Glide.with(mContext)//            .load(url)//    .placeholder(R.drawable.loading_spinner)//    .into(new SimpleTarget<Bitmap>(width, height) {//        @Override//        public void onResourceReady(Bitmap bitmap, GlideAnimation anim) {//            // setImageBitmap(bitmap) on CircleImageView//        }//    };//    10.加载圆形图片和圆角图片//    //圆形图片//    public class GlideCircleTransform extends BitmapTransformation {//        public GlideCircleTransform(Context context) {//            super(context);//        }////        @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {//            return circleCrop(pool, toTransform);//        }////        private static Bitmap circleCrop(BitmapPool pool, Bitmap source) {//            if (source == null) return null;////            int size = Math.min(source.getWidth(), source.getHeight());//            int x = (source.getWidth() - size) / 2;//            int y = (source.getHeight() - size) / 2;////            // TODO this could be acquired from the pool too//            Bitmap squared = Bitmap.createBitmap(source, x, y, size, size);////            Bitmap result = pool.get(size, size, Bitmap.Config.ARGB_8888);//            if (result == null) {//                result = Bitmap.createBitmap(size, size, Bitmap.Config.ARGB_8888);//            }////            Canvas canvas = new Canvas(result);//            Paint paint = new Paint();//            paint.setShader(new BitmapShader(squared, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));//            paint.setAntiAlias(true);//            float r = size / 2f;//            canvas.drawCircle(r, r, r, paint);//            return result;//        }////        @Override public String getId() {//            return getClass().getName();//        }//    }//    //圆角图片//    public class GlideRoundTransform extends BitmapTransformation {////        private static float radius = 0f;////        public GlideRoundTransform(Context context) {//            this(context, 4);//        }////        public GlideRoundTransform(Context context, int dp) {//            super(context);//            this.radius = Resources.getSystem().getDisplayMetrics().density * dp;//        }////        @Override protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {//            return roundCrop(pool, toTransform);//        }////        private static Bitmap roundCrop(BitmapPool pool, Bitmap source) {//            if (source == null) return null;////            Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);//            if (result == null) {//                result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);//            }////            Canvas canvas = new Canvas(result);//            Paint paint = new Paint();//            paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));//            paint.setAntiAlias(true);//            RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());//            canvas.drawRoundRect(rectF, radius, radius, paint);//            return result;//        }////        @Override public String getId() {//            return getClass().getName() + Math.round(radius);//        }//    }}