android 图片加载和缓存开源项目 Picasso
2015-10-27 15:09
375 查看
android 图片加载和缓存开源项目 Picasso
博客分类: androidPicassoandroid图片下载图片缓存
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软件启动动画及动画结束后跳转的实现方法
- Android 调试native的crash和anr
- android的handler、looper、Message之间的关系
- 将android模拟器上的db文件拷贝到电脑上
- android的httopost请求405错误
- [转]Android 编程下 Touch 事件的分发和消费机制
- android__删除源码更换版本重新运行时报版本过低错误
- Android为ViewPager增加切换动画——自定义ViewPager
- [转]Android SDK与API版本的对应关系
- AndroidStudio编译错误
- Android2.2 API中文文档——View
- Android圆形图片带边框
- Android带日程安排的自定义日历控件
- Android 实现ListView的A-Z字母排序和过滤搜索功能,实现汉字转成拼音
- 学Android---ToggleButton
- Android线程消息通信
- android 工程如何修改 android sdk 版本
- 简单的设置android文本边框
- Android免Root自动安装apk
- android activity传递对象