Picasso的使用呢,是刚来公司没多久的时候用到的,当时并没有多大的自觉性将其记录下来,促使我将它记录下来的原因是,公司的女神姐姐想要用到图片下载缓存库的时候,问我的时候,我发现我记得并不是特别的清楚,还翻了之前的代码看,才知道我之前写了个什么东西,为何用这个东西,它的使用方法,优势。。接下来我会一一讲述清楚。
Picasso的简介:
picasso是Square公司开源的一个Android图形缓存库 ,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步加载。使用起来特别的方便。
Picasso的使用:
嘿嘿,还是上Github上的,我并不觉得会比人家写的好。
https://github.com/square/picasso
另外还有一个强大的中国网友的~
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/0731/1639.html
相信有小伙伴想用Picasso却并不知道怎么好好用,一会我将我用到的地方粘出来
我用到Picasso的原因呢,是因为,需要在前面一个界面进行缓存,然后缓存成功的话,就有后面的一个界面进行展示,如果缓存不成功,则不再进行展示,那么这个需求包括三点,一:图片缓存 二:图片是否缓存成功 三:图片的展示
不多说了,来看看我的代码,这段代码,缓存了图片,并且判断了图片是否缓存成功。强大的Picasso~
Picasso.with(WelcomeActivity.this).load(adUrl).fetch(new Callback() {
@Override
public void onSuccess() {flag = true;}
@Override
public void onError() {flag = false;}
});
加载图片的代码:
mAdImageView = (ImageView) findViewById(R.id.ad_imageview);
Picasso.with(this).load(adUrl).into(mAdImageView);
图片下载缓存库的原理
当然,Picasso使用倒是会了,那么我们知道图片下载缓存库的原理吗?
http://blog.csdn.net/lmj623565791/article/details/41874561
这一篇文档,博主带我们写一个小demo来感受,有兴趣的鞋子们可以去看看的。
Picasso的特性
1、处理Adapter中的ImageView 回收和取消已经回收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);
}
2、使用最少的内存完成复杂的图片转换,比如把下载的图片转换为圆角。
部分示例代码:
Picasso.with(context).load(url).resize(50, 50).centerCrop().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);
4、支持调试
调用函数 Picasso.setDebug(true) 可以在加载的图片左上角显示一个三角形 ,不同的颜色代表不同的加载来源,比如:
红色:代表从网络下载的图片
黄色:代表从磁盘缓存加载的图片
绿色:代表从内存中加载的图片
写了就以上这些了,再次感慨Picasso的图片下载缓存库的强大。