1.简介

Picasso是Square公司出品的一个强大的图片下载和缓存图片库
1)在adapter中需要取消已经不在视野范围的ImageView图片资源的加载,否则会导致图片错位,Picasso已经解决了这个问题。
2)使用复杂的图片压缩转换来尽可能的减少内存消耗
3)自带内存和硬盘二级缓存功能

 

2.基本用法

Picasso

①普通加载图片

Picasso.with(PicassoActivity.this)
    .load("http://n.sinaimg.cn/translate/20160819/9BpA-fxvcsrn8627957.jpg")
    .into(ivPicassoResult1);

②裁剪的方式加载图片

Picasso.with(PicassoActivity.this)
    .load("http://n.sinaimg.cn/translate/20160819/9BpA-fxvcsrn8627957.jpg")
    .resize(100,100)
    .into(ivPicassoResult1);  

③选择180度

Picasso.with(PicassoActivity.this)
    .load("http://n.sinaimg.cn/translate/20160819/9BpA-fxvcsrn8627957.jpg")
    .rotate(180)
    .into(ivPicassoResult1);

  

3.ListView资源加载的方法

- placeholder(xxx). 设置资源加载过程中的显示的Drawable。
- error(xxx).设置load失败时显示的Drawable。
- into(xxx) 设置资源加载到的目标 包括ImageView Target等

eg:Adapter中getView()方法中

// 加载图片
Picasso.with(mContext)
	.load(Constants.IMAGES[position])
	.placeholder(R.drawable.atguigu_logo)
	.error(R.drawable.atguigu_logo)
	.into(holder.iv);

  

4.常用工具类

 

 1 public class PicassoUtil {
 2     //加载本地图片
 3     public static void setImg(Context context, int resId, ImageView imgView){
 4         Picasso.with(context)
 5                 .load(resId)
 6                 .config(Bitmap.Config.RGB_565)//8位RGB位图
 7                 .fit()
 8                 .into(imgView);
 9     }
10     //按照一定的宽高加载本地图片,带有加载错误和默认图片
11     public static void setImg(Context context,int resId,ImageView imgView,int weight,int height){
12         Picasso.with(context)
13                 .load(resId)//加载本地图片
14                 .config(Bitmap.Config.RGB_565)//8位RGB位图
15                 .resize(weight,height)//设置图片的宽高
16                 .into(imgView);//把图片加载到控件上
17     }
18     //加载网络图片到imgview,带有加载错误和默认图片
19     public static void setImg(Context context, String imgurl, int resId, ImageView imgView){
20         Picasso.with(context)
21                 .load(imgurl)//加载网络图片的url
22                 .config(Bitmap.Config.RGB_565)//8位RGB位图
23                 .placeholder(resId)//默认图片
24                 .error(resId)//加载错误的图片
25                 .fit()//图片的宽高等于控件的宽高
26                 .into(imgView);//把图片加载到控件上
27     }
28     public static void setImg(Context context, String imgurl, ImageView imgView){
29         Picasso.with(context)
30                 .load(imgurl)//加载网络图片的url
31                 .config(Bitmap.Config.RGB_565)//8位RGB位图
32                 .fit()//图片的宽高等于控件的宽高
33                 .into(imgView);//把图片加载到控件上
34     }
35     //加载网络图片到Viewpager
36     public static void setImg(Context context, String imgurl, ViewPager imgView){
37         Picasso.with(context)
38                 .load(imgurl)//加载网络图片的url
39                 .config(Bitmap.Config.RGB_565)//8位RGB位图
40                 .fit()//图片的宽高等于控件的宽高
41                 .into((Target) imgView);//把图片加载到控件上
42     }
43     //加载网络图片到Viewpager,带有加载错误和默认图片
44     public static void setImg(Context context, String imgurl, int resId, ViewPager imgView){
45         Picasso.with(context)
46                 .load(imgurl)//加载网络图片的url
47                 .config(Bitmap.Config.RGB_565)//8位RGB位图
48                 .placeholder(resId)//默认图片
49                 .error(resId)//加载错误的图片
50                 .fit()//图片的宽高等于控件的宽高
51                 .into((Target) imgView);//把图片加载到控件上
52     }
53     //按照设定的宽高加载网络图片到imgview
54     public static void setImg(Context context, String imgurl,ImageView imgView,int weight,int height){
55         Picasso.with(context)
56                 .load(imgurl)//加载网络图片的url
57                 .config(Bitmap.Config.RGB_565)//8位RGB位图
58                 .resize(weight,height)//设置图片的宽高
59                 .into(imgView);//把图片加载到控件上
60     }
61     //按照设定的宽高加载网络图片到imgview,带有加载错误和默认图片
62     public static void setImg(Context context, String imgurl, int resId,int weight,int height, ImageView imgView){
63         Picasso.with(context)
64                 .load(imgurl)//加载网络图片的url
65                 .config(Bitmap.Config.RGB_565)//8位RGB位图
66                 .placeholder(resId)//默认图片
67                 .error(resId)//加载错误的图片
68                 .resize(weight,height)//设置图片的宽高
69                 .into(imgView);//把图片加载到控件上
70     }
71 }
PicassoUtil

相关文章:

  • 2021-11-20
  • 2021-11-09
  • 2021-11-06
  • 2021-06-06
  • 2021-06-13
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-11-18
  • 2021-09-01
  • 2022-01-02
  • 2022-01-24
相关资源
相似解决方案