android 图片加载和缓存开源项目 Picasso
来源:互联网 发布:零基础学算法进制 编辑:程序博客网 时间:2024/05/22 05:31
android 图片加载和缓存开源项目 Picasso
- 博客分类:
- android
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
- android 图片加载和缓存开源项目 Picasso
- android 图片加载和缓存开源项目 Picasso
- android 图片加载和缓存开源项目 Picasso
- android Picasso----图片加载和缓存
- Android图片加载库—Picasso一个强大的图像下载和缓存库
- picasso Android图片加载
- Picasso--Android图片加载开源库
- Android图片加载框架Picasso
- Android加载图片框架Picasso
- Android(视频、图片)加载和缓存类库Glide
- Android 图片加载和缓存库 Glide
- android 图片加载框架picasso流程解读
- Android图片加载库:Picasso详解
- Android Picasso图片加载库源码剖析
- Android中使用Picasso加载图片
- Android:图片加载库Glide VS Picasso
- android 图片加载框架 之 Picasso
- Android图片加载框架Picasso(一)
- 数据结构之单链表
- 《Matlab在数学建模中的应用》笔记2-非线性规划&整数规划
- (OK) using persistant storage in linux kernel - /sys/fs/pstore/console-ramoops
- 【jsp/servlet】jsp数据交互(一)
- poj3281 Dining 最大流
- android 图片加载和缓存开源项目 Picasso
- nginx定位到laravel下
- 130道C#面试题
- 在 Ubuntu 16.04 上安装 LEMP 环境之图文向导
- 【OpenCV入门教程之二】 一览众山小:OpenCV 2.4.8 or OpenCV 2.4.9组件结构全解析
- 数据挖掘之分类
- 20160902:论文学习第四周+骁龙800/Gem5-gpu
- android SwipeRefreshLayout 实现 下拉刷新 上拉加载
- 3操作符-Java编程思想