`
zxs19861202
  • 浏览: 907862 次
  • 性别: Icon_minigender_1
  • 来自: 湖北—》上海
社区版块
存档分类
最新评论

android 图片加载和缓存开源项目 Picasso

阅读更多

Picasso – Android系统的图片下载和缓存类库

Picasso 是Square开源的一个用于Android系统下载和缓存图片的项目。该项目和其他一些下载图片项目的主要区别之一是:使用4.0+系统上的HTTP缓存来代替磁盘缓存。

Picasso 的使用是非常简单的,例如:

帮助
1
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png.into(imageView"));
Picasso有如下特性:

处理Adapter中的 ImageView 回收和取消已经回收ImageView的下载进程
使用最少的内存完成复杂的图片转换,比如把下载的图片转换为圆角等
自动添加磁盘和内存缓存
具体介绍

在Adapter中下载

自动检测Adapter中的ImageView重用和取消不必要的下载

帮助

  1. @Override public void getView(int position, View convertView, ViewGroup parent) {
  2. SquaredImageView view = (SquaredImageView) convertView;
  3. if (view == null) {
  4. view = new SquaredImageView(context);
  5. }
  6. String url = getItem(position);Picasso.with(context).load(url).into(view);
  7. }
复制代码

 


图片转换

转换图片以适合所显示的ImageView,来减少内存消耗

帮助

  1. Picasso.with(context)
  2. .load(url)
  3. .resize(50, 50)
  4. .centerCrop()
  5. .into(imageView)
复制代码


还可以设置自定义转换来实现高级效果,例如下面的矩形特效(把图片居中裁剪为矩形)

 

帮助

  1. public class CropSquareTransformation implements Transformation {
  2. @Override public Bitmap transform(Bitmap source) {
  3. int size = Math.min(source.getWidth(), source.getHeight());
  4. int x = (source.getWidth() - size) / 2;
  5. int y = (source.getHeight() - size) / 2;
  6. Bitmap result = Bitmap.createBitmap(source, x, y, size, size);
  7. if (result != source) {
  8. source.recycle();
  9. }
  10. return result;
  11. }@Override public String key() { return "square()"; }
  12. }
复制代码

 


用该类示例调用函数 RequestBuilder.transform(Transformation) 即可。

占位符图片

Picasso支持下载和加载错误占位符图片。

帮助
Picasso.with(context)
.load(url)
.placeholder(R.drawable.user_placeholder)
.error(R.drawable.user_placeholder_error)
.into(imageView);
如果重试3次(下载源代码可以根据需要修改)还是无法成功加载图片 则用错误占位符图片显示。

支持本地资源加载

从 Resources, assets, files, content providers 加载图片都支持

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load(new File("/images/oprah_bees.gif")).into(imageView2);
调试支持

调用函数 Picasso.setDebug(true) 可以在加载的图片左上角显示一个 三角形 ,不同的颜色代表加载的来源

红色:代表从网络下载的图片

黄色:代表从磁盘缓存加载的图片

绿色:代表从内存中加载的图片

如果项目中使用了OkHttp库的话,默认会使用OkHttp来下载图片。否则使用HttpUrlConnection来下载图片。

http://square.github.io/picasso/

其他功能查看项目主页:http://github.com/square/picasso

参考项目:https://github.com/nostra13/Android-Universal-Image-Loader

https://github.com/mitmel/Android-Image-Cache

https://github.com/novoda/ImageLoader

https://github.com/square/okhttp

分享到:
评论

相关推荐

    android Picasso 加载图片demo,免积分

    picasso是Square公司开源的一个Android图形缓存库,地址http://square.github.io/picasso/,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步加载

    Picasso – Android系统的图片下载和缓存类库

    Picasso 是Square开源的一个用于Android系统下载和缓存图片的项目。该项目和其他一些下载图片项目的主要区别之一是:使用4.0+系统上的HTTP缓存来代替磁盘缓存。 Picasso 的使用是非常简单的,例如: 帮助 1 ...

    Picasso框架加载图片

    picasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能。当然使用起来也是非常的简单。 Picasso框架的简单使用,有加载图片,设置圆形图片,动态设置图片弧角。

    Android常用的图片加载库

    前言:图片加载涉及到图片的缓存、图片的处理、图片的显示等。四种常用的图片加载框架,分别是Fresco、ImageLoader、 Picasso、 Glide。 Universal Image Loader:ImageLoader是比较老的框架,一个强大的图片加载库...

    Android中图片处理库Picasso的基本使用

    Picasso是Square公司开源的一个Android图形缓存库。可以实现图片下载和缓存功能。 特点: 加载载网络或本地图片并自动缓存处理 链式调用 图形转换操作,如变换大小,旋转等,提供了接口来让用户可以自定义转换操作 ...

    Android 常见的图片加载框架详细介绍

    Android 常见的图片加载框架 图片加载涉及到图片的缓存、图片的处理、图片的显示等。而随着市面上手机设备的硬件水平飞速发展,对图片的显示要求越来越高,稍微处理不好就会造成内存溢出等问题。很多软件厂家的通用...

    Android入门教程之Picasso框架

    Picasso是一个Android图片加载缓存框架,它具有如下特性:  1.支持任务优先级,会优先加载“优先级”较高的图片。  2.带有统计监控功能,可以统计缓存命中率,实时监控已使用的内存等等。  3.能够根据当前网络...

    Picasso:强大的Android图片下载和缓存库-开源

    毕加索会自动处理Android上许多常见的图像加载陷阱:处理ImageView回收和适配器中的下载取消。 复杂的图像转换,使用最少的内存。 自动内存和磁盘缓存。 自动检测到适配器的重新使用,并且先前的下载被取消。 转换...

    Android项目源码24小时今日资讯新闻客户端

    1.android图片下载缓存库picasso的使用 2.android-async-http异步线程请求库的使用 3.android超快listview的FastScrollView框架的使用 4.目前使用的一些下拉刷新、上拉加载 5.还有一些包括自己写的json解析..抽象...

    Android中Glide加载库的图片缓存配置究极指南

    图片加载框架用了不少,从afinal框架的afinalBitmap,Xutils的BitmapUtils,老牌框架universalImageLoader,著名开源组织square的picasso,google推荐的glide到FaceBook推出的fresco。这些我前前后后都体验过,那么...

    Gankio_Han:Android下根据Material Design设计的GankIO客户端

    Picasso 同Glide相近,同样是一个用于图片加载和缓存的库。两者的性能对比 lite-orm LiteOrm是一个速度快、小巧却强大的android ORM框架类库,LiteOrm让你一行代码实现数据库的增删改查操作,以及实体关系的持久化和...

    Android网络请求之OkHttp

    这是一个开源项目,是安卓端最火热的轻量级框架,由移动支付Square公司贡献(该公司还贡献了Picasso和LeakCanary)。用于替代HttpUrlConnection和Apache HttpClient(android API23 里已移除HttpClient) OkHttp是一款优秀...

    java实现校园一卡通源码-StarsRepository:星库

    主要包括:缓存(图片缓存、预取缓存、网络缓存)、公共View(下拉及底部加载更多ListView、底部加载更多ScrollView、滑动一页Gallery)及Android常用工具类(网络、下载、Android资源操作、shell、文件、Json、随机数、...

    Android图形缓存库功能

    源码picasso,picasso是Square公司开源的一个Android图形缓存库,可以实现图片下载和缓存功能。使用说明: 仅仅只需要一行代码就能完全实现图片的异步加载: Picasso.with(context).load(...

    java反编译泄露源码-zhongwenjun.github.com:中文君.github.com

    图片加载:Fresco/Glide/Picasso/ImageLoader 事件总线:EventBus 动画:Lottie 注解框架 其它 JNI原理 Dalvik/ART Gradle/Grovvy plugin Git使用 Android进阶 进程通信 AMS/PMS/WMS 进程保活/优先级 系统服务 ...

Global site tag (gtag.js) - Google Analytics