Glide的使用(加载图片,动态图,缩略图,视频解码等)(Glide 4.0的使用)

                 PS:写这个只是纯属自己做个笔记,技术不行,学习中,看大神博客说写博客有很多好处,然后就写写,当记笔记,估计就是一时新鲜,记几天就不记了大笑


         


                 Glide是一个图片加载库,在图片加载上能大大提高性能和稳定性,个人感觉特别好用。




                 使用之前先得添加Glide.jar,下载地址:http://download.csdn.net/detail/hdszlk/9447914

                                                                                




                        使用:简单写了一下用,listView加载几张图片,性能优化效果不是特别明显。


       

          



                 然后需要注意的就是with()方法中传入的context的类型会直接影响到Glide加载图片的优化程度,如果你使用的是Application Context的话,优化效果就失去了。然后Glid它是可以监视Activity的生命周期,可以在Activity销毁的时候取消等待中的请求。Glide.clear()用于清除Glide加载图片请求。还有就是不要在非主线程里面使用Glide加载图片,如果真的使用了,请把context参数换成getApplicationContext




                 Glide它可以把视频解码成一张图片,以及动态GIF图的加载,和对缩略图的支持,如图。


 

               

                  下面是基于Glide的优秀库(这个没用过,看资料上的):


         1.GlidePalette( https://github.com/florent37/GlidePalette),它可以在Glide加载时很方便使用Palette的库。


          2.glide-transformations(https://github.com/wasabeef/glide-transformations),它是基于Glidetransformation库,有裁剪,着色,模糊,滤镜等多种转换效果。






                 

                

         添加一个Glide工具类,忘了是借鉴哪个大神的了:

/**
 * Created by xiaoMan on 2016/9/30.
 * details:
 * Glide 工具类
 * Google推荐的图片加载库,专注于流畅的滚动
 * <p/>
 * Glide Picasso  加载快 但需要更大的内存来缓存
 * <p/>
 * Glide 不光接受Context,还接受Activity Fragment ,图片加载会和Activity/Fragment的生命周期保持一致 在onPause()暂停加载,onResume()恢复加载
 * <p/>
 * 支持GIF格式图片加载
 */

public class GlideUtils {


    private static GlideUtils instance;

    public static GlideUtils getInstance() {
        if (instance == null) {
            synchronized (GlideUtils.class) {
                if (instance == null) {
                    instance = new GlideUtils();
                }
            }
        }
        return instance;
    }

    /**
     * 加载bitmap,如果是GIF则显示第一帧
     */
    public static String LOAD_BITMAP = "GLIDEUTILS_GLIDE_LOAD_BITMAP";
    /**
     * 加载gif动画
     */
    public static String LOAD_GIF = "GLIDEUTILS_GLIDE_LOAD_GIF";


    public void loadBitmap(Context context,String path,ImageView imageView){
        LoadContextBitmap(context,path,imageView,0,0,null);
    }

    /**
     * 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制
     * 使用activity 会受到Activity生命周期控制
     * 使用FragmentActivity 会受到FragmentActivity生命周期控制
     *
     * @param
     * @param path
     * @param imageView
     * @param placeid     占位
     * @param errorid     错误
     * @param bitmapOrgif 加载普通图片 或者GIF图片 ,GIF图片设置bitmap显示第一帧
     */
    public void LoadContextBitmap(Context context, String path, ImageView imageView, int placeid, int errorid, String bitmapOrgif) {
        if (bitmapOrgif == null || bitmapOrgif.equals(LOAD_BITMAP)) {
            Glide.with(context).load(path).centerCrop().placeholder(placeid).error(errorid).crossFade().into(imageView);
        } else if (bitmapOrgif.equals(LOAD_GIF)) {
            Glide.with(context).load(path).asGif().crossFade().into(imageView);
        }
    }

    /**
     * Glide请求图片,会受到Fragment 生命周期控制。
     *
     * @param fragment
     * @param path
     * @param imageView
     * @param placeid
     * @param errorid
     * @param bitmapOrgif 加载普通图片 或者GIF图片 ,GIF图片设置bitmap显示第一帧
     */
    public void LoadFragmentBitmap(android.app.Fragment fragment, String path, ImageView imageView, int placeid, int errorid, String bitmapOrgif) {
        if (bitmapOrgif == null || bitmapOrgif.equals(LOAD_BITMAP)) {
            Glide.with(fragment).load(path).placeholder(placeid).error(errorid).crossFade().into(imageView);
        } else if (bitmapOrgif.equals(LOAD_GIF)) {
            Glide.with(fragment).load(path).asGif().crossFade().into(imageView);
        }
    }

    /**
     * Glide请求图片,会受到support.v4.app.Fragment生命周期控制。
     *
     * @param fragment
     * @param path
     * @param imageView
     * @param placeid
     * @param errorid
     * @param bitmapOrgif 加载普通图片 或者GIF图片 ,GIF图片设置bitmap显示第一帧
     */
    public void LoadSupportv4FragmentBitmap(android.support.v4.app.Fragment fragment, String path, ImageView imageView, int placeid, int errorid, String bitmapOrgif) {
        if (bitmapOrgif == null || bitmapOrgif.equals(LOAD_BITMAP)) {
            Glide.with(fragment).load(path).placeholder(placeid).error(errorid).crossFade().into(imageView);
        } else if (bitmapOrgif.equals(LOAD_GIF)) {
            Glide.with(fragment).load(path).asGif().crossFade().into(imageView);
        }
    }
    //---------------------圆形图片-------------------

    /**
     * 加载设置圆形图片
     * 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制
     * <BR/>使用activity 会受到Activity生命周期控制
     * <BR/>使用FragmentActivity 会受到FragmentActivity生命周期控制
     *
     * @param context
     * @param path
     * @param imageView
     */
    @SuppressWarnings("unchecked")
    public void LoadContextCircleBitmap(Context context, String path, ImageView imageView) {
        Glide.with(context).load(path).bitmapTransform(new GlideCircleTransform(context)).into(imageView);
    }

    /**
     * Glide请求图片设置圆形,会受到android.app.Fragment生命周期控制
     *
     * @param fragment
     * @param path
     * @param imageView
     */
    @SuppressWarnings("unchecked")
    public void LoadfragmentCircleBitmap(android.app.Fragment fragment, String path, ImageView imageView) {
        Glide.with(fragment).load(path).bitmapTransform(new GlideCircleTransform(fragment.getActivity())).into(imageView);
    }

    /**
     * Glide请求图片设置圆形,会受到android.support.v4.app.Fragment生命周期控制
     *
     * @param fragment
     * @param path
     * @param imageView
     */
    @SuppressWarnings("unchecked")
    public void LoadSupportv4FragmentCircleBitmap(android.support.v4.app.Fragment fragment, String path, ImageView imageView) {
        Glide.with(fragment).load(path).bitmapTransform(new GlideCircleTransform(fragment.getActivity())).into(imageView);
    }
    //-----------------------圆角图片----------------------

    /**
     * 加载设置圆角图片
     * 使用Application上下文,Glide请求将不受Activity/Fragment生命周期控制
     * <BR/>使用activity 会受到Activity生命周期控制
     * <BR/>使用FragmentActivity 会受到<
  • 8
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值