学习的blog来自
传送门1
传送门2
对Picasso的底层实现有一定的说明
关于picasso的使用
首先是构建依赖
compile 'com.squareup.picasso:picasso:2.5.2'
然后进行最基础也是最常用的设置图片
Picasso.with(this).load(R.mipmap.head).into(avatar);
Picasso.get().load(R.mipmap.head).into(avatar);
两个都相同,后者的get()是较新版本的用法
1、with()
方法里面写入context上下文 get()方法则没有参数
2、load()
为加载的图片,能传入的参数有4种:
String path、int resourceId、 Uri uri、File file
分别为图片路径、图片资源ID,网络图片的Uri和图片文件
如果为本地图片,则load直接调用。若为网络资源,则根据load()的源码,它将加载url,创建并返回一个图片下载请求的构建器RequestCreator,这个RequestCreator用来存储该图片加载任务的一切信息,然后由bitmapHunter和Dispatcher(任务分发器)通过OKHTTP3去下载图片,最后获得图片的类型是Bitmap,然后可以通过callback来处理图片。
3、into()
图片根据合适的尺寸填入ImageView中
4、resize()
填入宽高像素来重新定义图片尺寸
5、placeholder()和error()
分别为默认图片和加载不出来相应显示的错误图片。
特点:
是Square公司发布的,所以和OKHTTP,Retrofit啥的全家桶可以一起用
体积相对较小,所以最好只用于加载一些大小较小的图片
代码比较简单,一行就能搞定了
有优先级的设置,所以也有线程池分配任务这些概念。