美文网首页
关于Fresco图片加载库的使用优化

关于Fresco图片加载库的使用优化

作者: m只为终点 | 来源:发表于2018-07-24 14:21 被阅读0次

    Fresco是一个出自Facebook的功能强大的图片加载库

    Fresco简单的使用—SimpleDraweeView

    工欲善其事必先利其器—下载Fresco并导入到项目

    Fresco中文说明:http://www.fresco-cn.org/

    Fresco项目GitHub地址:https://github.com/facebook/fresco

    优点:

    1)内存自动回收。图片不可见时,会及时自动释放所占用的内存,尽可能地避免OOM

    2)三级缓存机制。两级内存缓存(解码的与未解码的)+一级磁盘缓存,提升加载速度,节省内存占用空间

    3)支持各种加载场景。如动图加载、高斯模糊等常见的图片加载场景。另外还提供了独特的渐进式加载先加载小图再加载大图加载进度等功能(很强大)。

    缺点:

    1)体积大(很胖)。较其他主流图片库体积要大不少

    2)侵入性较强。须使用它提供的SimpleDraweeView来代替ImageView加载显示图片

    综合来说,如果你的应用对图片的显示、加载等要求高的话,那就建议使用Fresco。但如果要求没那么高的话就用Glide或其它库吧。关于Fresco与Glide的对比可以参考http://www.jianshu.com/p/6729dc17586b

    使用方法,直接上代码,在xml文件里面,宽高不能设置wrap_content,否则显示不出来,这点我也觉得很麻烦啊,里面的属性有设置圆角,设置图片形状,放置占位图,加载失败的的默认图等,属性名就能看出来

    代码中

    DraweeController draweeController =Fresco.newDraweeControllerBuilder().setUri(picUrl)

    .setTapToRetryEnabled(false).setOldController(imgView.getController()).build();

    imgView.setController(draweeController);

    imgView.setTag(position);

    要特别说一下这个属性setTapToRetryEnabled(false),设置为true的话,图片在没加载出来的时候会自己尝试重新加载,但是这个问题会影响图片的点击事件,重试的时候点击事件会不执行,所以最好设置为false

    相关文章

      网友评论

          本文标题:关于Fresco图片加载库的使用优化

          本文链接:https://www.haomeiwen.com/subject/fkmylftx.html