Picasso-简单使用
来源:互联网 发布:网络文学作品论文 编辑:程序博客网 时间:2024/06/08 15:06
转载请注明出处:http://blog.csdn.net/pngfi/article/details/52067038
Picasso github地址
为什么用Picasso?
移动端的系统资源有限,Android给每个应用分配有限的内存,可能根据设备本身配置的不同,分配的内存大小也不一样。但是图片却占据大量的内存,比如 Galaxy Nexus 的相机拍摄的一张照片有2592x1936像素,大约5M像素。采用ARGB_8888 的配置把图片加载进内存,由于一个像素需要4个字节表示,那么总共需要大约19M的内存。这样当使用向ListView这样的控件加载图片列表的话,马上就会产生OOM。我们还需要下载、缓存(包括内存缓存和硬盘缓存)、对图片进行各种操作,真的会遇到各种头疼的问题。Picasso能帮助我们解决上面的问题,并且经受广大开发者测试,bug比较少。
初步使用
添加Picasso到你的工程依赖
Gradle
compile 'com.squareup.picasso:picasso:2.5.2'
Maven
<dependency> <groupId>com.squareup.picasso</groupId> <artifactId>picasso</artifactId> <version>2.5.2</version></dependency>
加载图片从一个URL
Picasso 使用链试的API, 对于一个完整的请求至少要三个参数。
- with(Context context) - 上下文.
- load(String imageUrl) -指定要加载的图片,一般是图片的URL 。当然这个方法还有其他的参数比如URI,File等。
- into(ImageView targetImageView) - 显示图片的imageview.
看代码
ImageView targetImageView = (ImageView) findViewById(R.id.imageView); String internetUrl = "http://i.imgur.com/DvpvklR.png";Picasso .with(context) .load(internetUrl) .into(targetImageView);
就是这么简单,如果这个URL指向的图片的存在的话,一会ImageView就会显示该图片。否则Picasso将会返回错误回调,我们后面会讨论这个话题。对于初学者看到这里肯定很屌很easy,但是这只不过是冰山一角。
加载不同资源
Picasso 可以从SD卡,Android资源、网路加载图片。
我们来看仔细看一下Picasso的load方法。
- load(Uri uri)
开始一个图片请求用指定的Uri,这是需要我们自己去构造Uri对象,如果uri为null,不会触发请求,但是会给imageview设置一个placeHolder如果你调用过placeholder()方法的话,关于你以理解为默认显示的图片。
Uri uri = resourceIdToUri(context, R.mipmap.future_studio_launcher);Picasso .with(context) .load(uri) .into(imageViewUri);
其中Uri的构造如下:
public static final String ANDROID_RESOURCE = "android.resource://";public static final String FOREWARD_SLASH = "/";private static Uri resourceIdToUri(Context context, int resourceId) { return Uri.parse(ANDROID_RESOURCE + context.getPackageName() + FOREWARD_SLASH + resourceId);}
- load(String path)
这是对 load(Uri uri)方法的封装,内部就是调用了 load(Uri.parse(path)) 。
其中path可以为一个远程的图片url,就像我们上面实例中的那样;或者是本地图片,“file://”+本地绝对路径;或者是android 资源文件以android.resource:开头;
或者是 content资源,以content:开头;
Picasso.with(context).load("file:///storage/27AE-14F7/Pictures/HospitalApp/IMG_20160729_193115.jpg ").into(imageView2);
- load(File file)
Picasso.with(context).load(new File(...)).into(imageView3);
- load(int resourceId)
加载指定resourceId的android资源图片
Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
1 0
- Picasso-简单使用
- Picasso 简单使用
- Picasso的简单使用
- Android Picasso的简单使用
- Picasso的简单介绍和使用
- 图片框架Picasso的简单使用
- Glide与Picasso简单集成并使用
- Picasso图片加载器的简单使用
- Picasso图片加载器的简单使用
- Picasso的简单使用及封装
- Picasso使用
- picasso使用
- picasso使用
- Retrofit2结合Picasso在项目当中的简单使用
- 图片加载框架简单介绍<二> Picasso 的基本使用
- 关于picasso的简单使用(整理自网络)
- picasso的简单用法
- Picasso的简单实用
- B - Rescue
- Algorithm中Heap
- Linux兴趣小组暑假留校第四次讲座总结
- 存边sap
- 贪心算法的学习
- Picasso-简单使用
- Android Studio中如何设置注释模板(针对file)
- eclipse安装jetty插件、maven项目测试
- 改变帧大小记录
- 常用JAVA集合框架(Collection、List、Set、Map)
- 线程池
- Android内存泄漏的八种可能
- 利用JXL包处理Excel表格
- EasyUI 搜索框