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://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
转自:http://blog.chengyunfeng.com/?p=492
Picasso – Android系统的图片下载和缓存类库的更多相关文章
- 【转】Picasso – Android系统的图片下载和缓存类库
来源:http://blog.chengyunfeng.com/?p=492 另一篇参考:http://blog.csdn.net/xu_fu/article/details/17043231 Pic ...
- android:强大的图片下载和缓存库Picasso
1.Picasso简单介绍 Picasso是Square公司出品的一个强大的图片下载和缓存图片库.官方网址是:http://square.github.io/picasso/ 仅仅须要一句代码就能够将 ...
- Android图片下载以及缓存框架
实际开发中进行图片下载以及缓存的框架 介绍一下开发中常见图片加载框架的使用和对比一下优缺点. 1.Picasso 框架 在Android中开发,常需要从远程获取图片并显示在客户端,当然我们可以使用原生 ...
- Android菜鸟的成长笔记(5)——Android系统源代码你下载了吗?
原文:Android菜鸟的成长笔记(5)--Android系统源代码你下载了吗? 在上一篇中我们用Android系统源代码分析了我们前面写的代码,有的朋友可能就会问怎么才能下载到Google官方的源代 ...
- android:强大的图像下载和缓存库Picasso
1.Picasso一个简短的引论 Picasso它是Square该公司生产的一个强大的图像下载并缓存画廊.官方网站:http://square.github.io/picasso/ 仅仅须要一句代码就 ...
- 【Android 系统开发】下载 编译 Android源代码 和 Android kernel源代码
下载Android源码简要流程 : a. 获取repo文件: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo ...
- Android系统源代码的下载与编译
http://www.jianshu.com/p/aeaceda41798 目录 1.简介 2.官方同步源代码 3.镜像同步源代码 4.已有源代码更新 5.编译源代码 5.1编译Android 4.1 ...
- android系统通过图片绝对路径获取URI的三种方法
最近做项目要通过图片的绝对路径找到图片的URI,然后删除图片,小小总结一下获取URI的方法,亲自试验在 android 4.1.3的系统上都是可用的. 1.将所有的图片路径取出,遍历比较找到需要的路径 ...
- android系统源码下载
ubuntu 安装git curl python 确保主目录下有一个 bin/ 目录,并且该目录包含在路径中: mkdir ~/bin PATH=~/bin:$PATH 下载 Repo 工具,并确 ...
随机推荐
- SQL转换函数to_char/to_date/to_number
日期型->字符型转换函数to_char(d [,fmt]) 函数to_char(d [,fmt])用于将日期型数值转换为字符串(varchar2类型),其中参数d用于指定日期值,fmt用于指定要 ...
- django: db howto - 1
以在 Django 中使用 MySQL 为例,首先要安装 MySQL 和 MySQL-python 组件,确保 python 能执行 import MySQLdb. MySQL 中创建数据库: [ro ...
- sql中视图视图的作用
视图是一个虚拟表,其内容由查询定义.同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在.行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态 ...
- 使用Uploadify 时,同时使用了jQuery.Validition 验证控件时,在IE11上出现JS缺少对象错误。
场景: 使用jQuery.1.8.2 使用 Uploadify 3.2上传控件 使用jQuery.Validition 1.9 验证 使用IE 11 时,当鼠标点击上传按钮时,会出现JS 缺少对象错误 ...
- uva 10994 - Simple Addition
//组合数学 //计算sum{i从右往左数的第一个非0数字,p<=i<=q}. #include <cstdio> typedef long long ll; ll sum(l ...
- PHP扩展开发(4) - 多类扩展
由于函数和单类的扩展,网上一搜一大片,这里就不再叙述了. 这里特别感谢laruence(鸟哥)开源的yaf扩展,解决困扰我多时的多类问题,还在看他的代码学习中,这里是对多类写法学习的一个阶段总结. ...
- 一个Hadoop难以查找的错误
This script is Deprecated. Instead use start-dfs.sh and start-yarn.sh Starting namenodes on [Master1 ...
- iOS学习之懒加载
懒加载——也称为延迟加载,即在需要的时候才加载(效率低,占用内存小).所谓懒加载,其实是重写getter方法. 注意:如果是懒加载的话则一定要注意先判断是否已经有了,如果没有那么再去进行实例化 使用懒 ...
- 为什么针对XML的支持不够好?如何改进?
为什么针对XML的支持不够好?如何改进? 物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonConfigurati ...
- 一直想测试的NGINX变量输出,最于有办法了。
参考URL: http://blog.ailms.me/2013/08/04/nginx-server_name-and-host-difference.html 要是可能在正则测试及REWRITE就 ...