Picasso图片下载缓存库的使用心得


Picasso的使用呢,是刚来公司没多久的时候用到的,当时并没有多大的自觉性将其记录下来,促使我将它记录下来的原因是,公司的女神姐姐想要用到图片下载缓存库的时候,问我的时候,我发现我记得并不是特别的清楚,还翻了之前的代码看,才知道我之前写了个什么东西,为何用这个东西,它的使用方法,优势。。接下来我会一一讲述清楚。

Picasso的简介:

  picassoSquare公司开源的一个Android图形缓存库 ,可以实现图片下载和缓存功能。仅仅只需要一行代码就能完全实现图片的异步加载。使用起来特别的方便。

<Picasso是一个用于Android平台上的下载和缓存图片的项目。它有许多定制选项,如何处理下载图片(包括调整和裁剪,以及提供一个接口让你随自己心意将图片转换成圆角等)。Picasso将要下载的图片(如果没有缓存)并将它负载到指定的目标,转换图片以适合所显示的ImageView,来减少内存消耗。>


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;}
});

最后我是根据flag进行操作的。


加载图片的代码:

        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);

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的图片下载缓存库的强大。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章