Picasso详细解析(一)
来源:互联网 发布:js uint8array int 编辑:程序博客网 时间:2024/05/29 15:41
Picasso
Android平台上一个强大的图片加载和缓存库
介绍
Picasso允许在你的APP中简便的加载图片-通常只需要一行代码
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);
Picasso修复了很多图片加载的坑:
- 处理ImageView的垃圾回收并且在adapter中取消下载
- 最小的内存使用处理复杂的图片变化
- 自动的内存和磁盘缓存
功能
适配器下载
Adapter自动检测并重用之前取消的下载
@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);}
图片处理
改变图片大小去适配布局并且减少内存大小
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()"; }}
传递一个这个类的实例到transform()中
占位符
Picasso提供下载中和下载失败时的占位符
Picasso.with(context) .load(url) .placeholder(R.drawable.user_placeholder) .error(R.drawable.user_placeholder_error) .into(imageView);
一个请求在请求成功展示之前会重试三次
其他资源加载
Resources, assets, files, content providers都可以支持加载
Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);Picasso.with(context).load("file:///android_asset/DvpvklR.png").into(imageView2);Picasso.with(context).load(new File(...)).into(imageView3);
debug指示器
在开发时,你可以指定展示一个颜色的小三角在图片的左上角来表明图片的来源,调用 setIndicatorsEnabled(true) 即可。
下载
源码和例子在github地址上可以下载
MAVEN
<dependency> <groupId>com.squareup.picasso</groupId> <artifactId>picasso</artifactId> <version>2.5.2</version></dependency>
Gradle
compile 'com.squareup.picasso:picasso:2.5.2'
原文链接:http://square.github.io/picasso/
0 0
- Picasso详细解析(一)
- Picasso框架源码解析(一)。
- Picasso源码的简单解析(一)
- Picasso源码的简单解析(一)
- Picasso源码完全解析(一)--概述
- Picasso源码解析 一
- Picasso使用学习(一)
- Picasso源码完全解析(二)--Picasso实例的创建
- Picasso源码的简单解析(二)
- ERP系统BOM详细解析(一)
- ERP系统BOM详细解析(一)
- mp4文件格式详细解析(一)
- Three20 NetWork 源码详细解析(一)
- ERP系统BOM详细解析(一)
- 多线程详细解析(一) 创建线程
- 超详细Retrofit源码解析(一)
- Picasso的详细使用
- Android图片加载框架Picasso(一)
- 悬浮框效果
- DirectXMath
- File的sd卡
- 数据库三范式讲解
- NFS安装
- Picasso详细解析(一)
- LeetCode ——258.Add Digits
- Android 热修复总结
- file遍历(递归)
- springmvc实现json交互-requestBody和responseBody
- 群讨论
- STM32 普通定时器(TIM3)中断 实现流水灯实验
- AndroidStudio--Git--本地项目添加Git并初次上传到远程Git
- ActionBar