Android培训教程-常见的图片加载框架.docxVIP

Android培训教程-常见的图片加载框架.docx

  1. 1、本文档共7页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Android培训教程-常见的图片加载框架Android培训教程-常见的图片加载框架

? 图片加载涉及到图片的缓存、图片的处理、图片的显示等。而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题。很多软件厂家的通用做法就是借用第三方的框架进行图片加载。 开源框架的源码还是挺复杂的,但使用较为简单。大部分框架其实都差不多,配置稍微麻烦点,但是使用时一般只需要一行,显示方法一般会提供多个重载方法,支持不同需要。这样会减少很不必要的麻烦。同时,第三方框架的使用较为方便,这大大的减少了工作量、提高了开发效率。本文主要介绍四种常用的图片加载框架,分别是Fresco、ImageLoader、 Picasso、 Glide,包括他们各自的优缺点、使用步骤等等。??首先看 Fresco, Fresco 是 Facebook 推出的开源图片缓存工具,主要特点包括:两个内存缓存加上 Native 缓存构成了三级缓存,支持流式,可以类似网页上模糊渐进式显示图片,对多帧动画图片支持更好,如 Gif、WebP。它的优点是其他几个框架没有的, 或者说是其他几个框架的短板。??优点:??1. 图片存储在安卓系统的匿名共享内存, 而不是虚拟机的堆内存中, 图片的中间缓冲数据也存放在本地堆内存, 所以, 应用程序有更多的内存使用, 不会因为图片加载而导致oom, 同时也减少垃圾回收器频繁调用回收 Bitmap 导致的界面卡顿, 性能更高。??2. 渐进式加载 JPEG 图片, 支持图片从模糊到清晰加载。??3. 图片可以以任意的中心点显示在 ImageView, 而不仅仅是图片的中心。??4. JPEG 图片改变大小也是在 native 进行的, 不是在虚拟机的堆内存, 同样减少 OOM。?5. 很好的支持 GIF 图片的显示。??? 缺点:???1. 框架较大, 影响 Apk 体积???2. 使用较繁琐??? 使用步骤:???1. 引入 Fresco,包括两种方式,在线和离线。???在线引入依赖脚本形式,在dependencies中添加依赖,compile com.facebook.fresco:fresco:0.9.0???引入离线引入,需要导入的arr包较多,包括:compile(name: drawee-0.9.0, ext: aar)compile(name: fbcore-0.9.0, ext: aar)compile(name: imagepipeline-0.9.0, ext: aar)compile(name: imagepipeline-base-0.9.0, ext: aar)compile files(libs/bolts-android-1.1.4.jar)??上面提到的aar其实就是lib module压缩包的形式,包括.class和相关的资源文件,平常使用的jar仅仅包括.class文件。使用aar包时,还需要来到project `build.gradle`里面, 在allprojects方法体加入???allprojects {?????? repositories {???????????? jcenter()?? ? //add begin??????????????? flatDir {?????????????????? dirs libs??????????????? } ?? //add end???????? }?? 2. 需要在程序入口方法里面进行初始化。在oncreate方法中添加初始化语句。????????Fresco.initialize(context);??? 3. 在布局文件中,需要使用图片展示地方,使用它定义的控件?com.facebook.drawee.view.SimpleDraweeView????????? android:id=@+id/iv_img????????? android:layout_width=150dp????????? android:layout_height=150dp????????? android:src=@mipmap/ic_launcher????????? fresco:fadeDuration=300????????? fresco:roundingBorderColor=#ccc????????? fresco:roundingBorderWidth=2dp/?? 4.设置静态图片,在代码中具体写如下代码??// 图片加载??Uri uri = Uri.parse(data.url);? holder.ivIcon.setImageURI(uri); ?? 5. 设置gif图片,在代码中具体写如下代码?DraweeController gifC

文档评论(0)

kxiachiq + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档