zoukankan      html  css  js  c++  java
  • Glide加载图片问题记录

    Glide加载图片相比于Picasso而言性能较好,又比Fresco轻巧,而且又支持加载gif动图,是Google 推荐、专注平滑的滚动、简单易用、可扩展的一款图片加载框架。但是使用时还是会遇到一些问题。

    1、同时和RoundedImageView使用时,又恰巧RoundedImageView设置了圆角或者圆形,那么在很多手机上会出现,开始有圆角,滑动过去再返回时,圆角消失了。所以加载圆形时还是配合GlideCircleTransform使用比较稳妥。

    2、我们在加载的时候一般会设置占位符 ,我们会加一个placeholder (loadingImage)如下

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

      但是会发现一直显示占位符的图片,不显示path 的路径, 这个原因应该是缓存问题。只要加上dontAnimate() 或者把Placeholder (loadingImage)的loadingimage 换成mImageview.getdrawable如下:

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

      

    3、加载gif时,不可以配合使用RoundedImageView,否则gif只能显示成图片。

    还有,敲重点!!!在性能比较好的新手机上,可以正常的流畅的播放 但是在性能比较差的旧手机就不行了 有很明显的卡顿现象。

    然后百度找原因:glide gif 卡 发现大部分都是以 .diskCacheStrategy(DiskCacheStrategy.SOURCE) 就解决了,但是有的手机加上还是mi有用啊。 So,无奈。glide在除了gif加载外适用还是比较好的。

    4、友盟上经常报出很多关于Glide的崩溃,如下

    You cannot start a load for a destroyed activity
    at com.bumptech.glide.manager.RequestManagerRetriever.assertNotDestroyed(RequestManagerRetriever.java:134)
    at com.bumptech.glide.manager.RequestManagerRetriever.get(RequestManagerRetriever.java:125)
    at com.bumptech.glide.Glide.with(Glide.java:641)
    

      究其原因,因为Glide是一个网络请求, 会在子线程中进行网络请求,我刚进入程序,Glide还正在子线程中请求数据,这是我就把MainActivity干掉了(onDestroy),Glide没有提前中止请求,所以就崩溃了呀。所以在使用之前还是先加个判断吧:

    if (context != null) {
         Glide.with(context).load(url).error(default_image).crossFade().into(imageView);
    } else {
         Log.e(TAG, "Picture loading failed,context is null");
    }

    所以,使用Glide请注意完美规避以上坑。 

    By LiYing

  • 相关阅读:
    [CF1299B] Aerodynamic
    [CF1338B] Edge Weight Assignment
    [CF689C] Mike and Chocolate Thieves
    [CF729C] Road to Cinema
    [CF735C] Tennis Championship
    [CF766C] Mahmoud and a Message
    [CF797C] Minimal string
    [CF798C] Mike and gcd problem
    [CF818D] Multicolored Cars
    《剑指Offer》面试题55:字符流中第一个不重复的字符
  • 原文地址:https://www.cnblogs.com/widgetbox/p/8590444.html
Copyright © 2011-2022 走看看