android开源项目:图片下载缓存库picasso

picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。

picasso有如下特性:

  • 在adapter中回收和取消当前的下载;
  • 使用最少的内存完成复杂的图形转换操作;
  • 自动的内存和硬盘缓存;
  • 图形转换操作,如变换大小,旋转等,提供了接口来让用户可以自定义转换操作;
  • 加载载网络或本地资源;
  • 可以转换为自己需要的request(Square公司开源的另一个网络支持库:retrofit支持转化json,protoc0l buffers).

    1.picasso的简单使用

    1 Picasso.with(context).load(url).placeholder(R.drawable.pic).error(R.drawable.pic).into(tagert); 需要注意:url为http链接时,load(url),当url为本地图片路径时load(new File(url)). 需要对图片简单处理:transform(Transformation); 如下是显示圆形图片

    //重载函数 public Bitmap transform(Bitmap source) { int width = source.getWidth(); int height = source.getHeight(); int x = 0, y = 0; if (mSquareRound && width != height) { if (width

    transform(new RoundTransformation(true));

    2.picasso的类图如下:
    android开源项目:图片下载缓存库picasso

    关键类的简单介绍:
    Cache:缓存类,子类LruCache才采用Least Recently Used 近期最少使用算法,当然LinkedHashMap已实现这个策略,只需根据配置的缓存大小来trimToSize。
    picass缓存策略单一,没有另一个图片下载缓存库 Android-universal-Image-Loader 缓存策略丰富:FIFOLimitedMemZ??">vcnlDYWNoZQogo6xMaW1pdGVkQWdlTWVtb3J5Q2FjaGUgtcihozwvcD4KPHA+Crb4sb612M7EvP67urTmo6xwaWNhc3Nv0v3Tw29raHR0cLXEzsS8/ru6tOajrLb4QW5kcm9pZC11bml2ZXJzYWwtSW1hZ2UtTG9hZGVy0rKyu82svLjW1s7EvP67urTmst/C1KGjPC9wPgo8cD4KIDwvcD4KPHA+ClJlcXVlc3RDcmVhdG9yOlJlcXVzdLm5vajV36Osv8nS1M2ouf2yu82sss7K/cXk1sNyZXF1ZXN0x+vH86GjPC9wPgo8cD4KUmVxdWVzdDrH68fzt+LXsMDgo6zWrrrzsNHL+dPQttTNvNDOtcSy2df3try74bzHwrzU2tXiwO+jrLmp1q6688280M61xLS0vajKudPDo6zI59bY0MK8xsvjtPPQoaOs0P3Xqr3HtsijrNKyv8nS1NfUtqjS5bHku7ujrNa70OjSqsq1z9ZUcmFuc2Zvcm1hdGlvbqOs0ru49mJpdG1hcNequ7u1xL3Tv9qho7Srtb3B7dK7uPa94bm51tBBY3Rpb26hozwvcD4KPHA+CkFjdGlvbjpBY3Rpb260+rHtwcvSu7j2vt/M5bXEvNPU2MjOzvGjrNb30qrTw9PazbzGrLzT1Ni687XEveG5+7vYtfejrNPQwb249rPpz/O3vbeoo6xjb21wbGV0ZbrNZXJyb3IuwLTNqNaqyc+y46GjPC9wPgo8cD4KQml0bWFwSHVudGVyOtK7uPZydW5uYWJsZc/fs8yjrM34wufPwtTYusS5pNf3z9+zzKOsvbu4+EV4ZWN1dG9yU2VydmVyudzA7da00NChozwvcD4KPHA+CkRvd25sb2FkZXI6zfjC5828xqzPwtTYxvejrNfTwOCyu82swLTRodTxaHR0cCBjbGllbnShozwvcD4KPHA+ClJlcXVlc3RIYW5kbGVyOsfrx/O0psDtwOCjrNfTwOC4+b7dzbzGrMC01LS78cih18rUtKGjPC9wPgo8cD4KRGlzcGF0aGNlcjrIzs7xtfe2yMb3o6y197bIus3OrLuk1d9hY3Rpb25zILrNIGJpdG1hcEh1bnRlciy1sWJpdG1hcGh1bnRlcrvxyKG1vc28xqzKsaOsu+HXqrj4ZGlzcGF0aGVyo6y3osvN0uyyvc/7z6KjrNfu1tW74WFjdGlvbi5jb21wbGV0ZSgpu/LV32FjdGlvbi5lcnJvcigpLjwvcD4KPHA+CiA8L3A+CjxwPgo8c3Ryb25nPjMucGljYXNzby53aXRoKGNvbnRleHQpLmxvYXIoaHR0cCkuaW50byhpbWFnZXZpZXcpO8H3s8zNvMjnz8I8L3N0cm9uZz48L3A+CjxwPgo8aW1nIHNyYz0="http://www.2cto.com/uploadfile/Collfiles/20141203/2014120309104861.png" alt="\">

    4.使用picasso可能出现的问题:
    1.图片有时会显示不了,查看应用中图片缓存文件,对一张图片,会生成两个文件:,.0文件保存了http响应相应的信息,.1文件时加密后的图片文件。.0文件的内容如下:

    http://192.168.2.40:82/group1/M00/0A/60/wKgCKFQJQkKABEn9AAPhsEdiW-o.phpzqf GET 0 HTTP/1.1 200 OK 9 Server: nginx/1.2.6 Date: Tue, 16 Sep 2014 12:02:26 GMT Content-Length: 254384 Last-Modified: Fri, 05 Sep 2014 04:55:30 GMT Connection: keep-alive Accept-Ranges: bytes OkHttp-Selected-Protocol: http/1.1 OkHttp-Sent-Millis: 1410868547182 OkHttp-Received-Millis: 1410868547357


    这边出现问题时,Content-Length: 0,但是图片确实存在。如果出现有时显示不了,可以从这方面查看下。可行的方法:
    定制Downloader,配置缓存目录和缓存大小。
    2.当picasso显示列表中大量图片时,查看大图时,有时还是会出现oom,除了对长宽比压缩,也可以以另外一个进程查看大图。

    点击复制链接 与好友分享!回本站首页
    您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力
    上一篇:Android真机测试 INSTALL_FAILED_INSUFFICIENT_STORAGE 解决方法
    下一篇:Android对第三方类库运行时加载
    相关文章

    android里图片下载工具类AsyncImageLo

    android:强大的图片下载和缓存库Picas

    详细讲解Android图片下载框架Universi

    详细讲解Android的图片下载框架Univer

    详细讲解Android的图片下载框架Univer

    详细讲解Android图片下载框架Universi

    Android项目代码混淆

    android之用Hello World做项目结构分析

    Android 项目开发 基于Web Service

    Android 项目开发 基于Web Service

    图文推荐

    android开源项目:图片下载缓存库picasso
    Android中数据存储方
    android开源项目:图片下载缓存库picasso
    Android OTA升级包制
    android开源项目:图片下载缓存库picasso
    Android从普通发送和
    android开源项目:图片下载缓存库picasso
    Android开发:Parall

分类:默认分类 时间:2015-03-05 人气:6
本文关键词:
分享到:

相关文章

Copyright (C) quwantang.com, All Rights Reserved.

趣玩堂 版权所有 京ICP备15002868号

processed in 0.155 (s). 10 q(s)