Fresco的使用心得

作者: 绮怀先生 | 来源:发表于2016-05-14 10:20 被阅读11596次
  • Fresco
    优点:
    1,使用简便,学习成本低
    2,十分强大,使用起来非常流畅,内存管理不用愁,不用担心OOM。
    3,自带加载时淡入效果,开发起来不费劲.
    4,图片加载时可在布局中直接设置加载动画等等,代码量大大减少
    缺点:
    1,必须使用fresco自定义的控件,如果需求更换,想要更换其他图片加载框架会有一定的麻烦,比如必须要改布局
    2,方法数太多,多达近4k方法,对于比较大的项目来说简直是压死骆驼的最后一个稻草,整项目方法数超过65k,不 得不分包.而且打包之后整个项目整整多了3M.确实大得很.
    3,必须全套使用fresco的图片加载,否则连获取简简单单的一个缓存中的bitmap都异常费劲
    总结:
    如果自己的项目不是社交软件,涉及到特别多图片加载的话,还是慎用吧.
    当然,在我的印象中,fresco就是你项目中图片加载处理的专业管家,几乎一切繁杂的事情它都帮你处理妥当,用起来简直贴心.

简单使用:

//布局
<com.facebook.drawee.view.SimpleDraweeView
      android:id="@+id/fresco_test"
      android:layout_gravity="center"
      android:gravity="center"
      android:layout_width="60dp"
      android:layout_height="60dp"
      fresco:fadeDuration="400"    //淡入时长
      fresco:progressBarImage="@anim/progress_round" //图片加载时显示的动画
      fresco:failureImage="@drawable/download_error"    //下载失败时的图片
      fresco:failureImageScaleType="fitXY"
      android:scaleType="fitXY"
      />
//代码中
Uri uri = Uri.parse(urlStr);
fresco_test.setImageURI(uri);//之后的一切全交给fresco就行了

在网上查了好久的资料才在github问答中找到的,简直心酸
神奇蛋疼的获取Bitmap代码:

private Bitmap getBitmapFromCache(String url) {

  Uri uri = Uri.parse(url);
  ImagePipeline imagePipeline = Fresco.getImagePipeline();
  ImageRequest imageRequest = ImageRequest.fromUri(uri);
  DataSource<CloseableReference<CloseableImage>> dataSource =
          imagePipeline.fetchImageFromBitmapCache(imageRequest, CallerThreadExecutor.getInstance());
  try {
      CloseableReference<CloseableImage> imageReference = dataSource.getResult();
      if (imageReference != null) {
          try {
              CloseableBitmap image = (CloseableBitmap) imageReference.get();
              // do something with the image
              Bitmap loadedImage = image.getUnderlyingBitmap();
              if (loadedImage != null) {
                  return loadedImage;
              } else {
                  return null;
              }
          } finally {
              CloseableReference.closeSafely(imageReference);
          }
      }
  } finally {
      dataSource.close();
  }
  return null;
}

facebook非常贴心,居然还有中文的官方文档:
fresco官方文档

相关文章

  • Fresco的使用心得

    Fresco优点:1,使用简便,学习成本低2,十分强大,使用起来非常流畅,内存管理不用愁,不用担心OOM。3,自带...

  • Fresco之强大之余的痛楚

    开始之前 如果你有使用的心得,技巧,踩坑经历,希望贡献出来,我会在TODO中慢慢添加(^^)/ 关于Fresco ...

  • fresco使用问题

    一、fresco的使用 对于fresco的使用,官网的使用方法已经很详尽,附上地址: https://www.fr...

  • Fresco简单的使用

    Fresco简单的使用 1,概述: 2,模块分类 3,Fresco特性 4,使用前的配置: app/build.g...

  • 图片加载

    Glide使用 Glide、Picasso、Fresco进阶 - 图像转换 图片请求UIL、Fresco、Glid...

  • 使用Fresco实现大图浏览(支持手势放大、拖拽)

    一、Fresco简介 Fresco是facebook出品的一款图片加载框架,使用了Fresco之后,不需要再考虑图...

  • android 图片加载库(4)- Fresco

    上一篇说完 Glide 之后,我们现在来说下 Fresco,从使用感受上来看,使用 Fresco 比 Glide ...

  • Android 填坑记录

    1.使用Fresco时,根据图片url获取缓存文件 2.使用Fresco时,如何实现缩放效果(PhotoView)...

  • Fresco的使用小结

    Fresco的使用小结(一) 1. Fresco的由来:Facebook出品的一个强大...

  • Android中如何使用fresco

    fresco官网https://www.fresco-cn.org/ 开始使用:https://www.fresc...

网友评论

  • hi超级自恋男hi:获取到这个bitmap是安全的吗,后边有没有可能被回收掉
  • 愛餅才會丫:可以考虑将其Webpimage模块和imagepipline模块移除掉,这样包会小点
    绮怀先生: @愛餅才會丫 真是一个很赞的主意,就是嫌麻烦吧😂
  • 皮球二二:比较麻烦的是他的自定义控件在graphicLayout下预览有问题
    绮怀先生: @r17171709 谢谢分享~😉
  • CodingShell:最大的缺点是apk会大2M
    绮怀先生:@风弦 你也用过呀,还有什么可以分享一下的吗? 好可惜我的项目要弃用fresco

本文标题:Fresco的使用心得

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