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重用和取消不必要的下载

帮助

@Override 

public void getView(int position, View convertView, ViewGroup parent) {

SquaredImageView view = (SquaredImageView) convertView;

if (view == null) {

view = new SquaredImageView(context);

}

String url = getItem(position);Picasso.with(context).load(url).into(view);

}


 


图片转换

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

帮助

Picasso.with(context)

.load(url)

.resize(50, 50)

.centerCrop()

.into(imageView)



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

 

帮助

public class CropSquareTransformation implements Transformation {

@Override public Bitmap transform(Bitmap source) {

int size = Math.min(source.getWidth(), source.getHeight());

int x = (source.getWidth() - size) / 2;

int y = (source.getHeight() - size) / 2;

Bitmap result = Bitmap.createBitmap(source, x, y, size, size);

if (result != source) {

source.recycle();

}

return result;

}@Override public String key() { return "square()"; }

}


 


用该类示例调用函数 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


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值