android:强大的图片下载和缓存库Picasso

android:强大的图片下载和缓存库Picasso

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

1.Picasso简单介绍

Picasso是Square公司出品的一个强大的图片下载和缓存图片库。官方网址是:http://square.github.io/picasso/

仅仅须要一句代码就能够将图片下载并设置到ImageView上。

Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);

2.主要特点

2.1Adapter downloads

使用ListView,GridView的时候,自己主动检測Adapter的重用(re-use),取消下载,使用缓存。

@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.2图像处理与变换

将图像进行变换,以更好的适应布局控件等,减小内存开销。

Picasso.with(context)
  .load(url)
  .resize(200, 200)
  .centerCrop()
  .into(imageView)

当然,我们也能够写自己的变换类,可是必须实现Transformation接口,如:

/**
	 * 自己定义接口,实现图像缩小为原来的一半
	 */
	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.with(this).load("http://i.imgur.com/DvpvklR.png")
				.transform(new CropSquareTransformation()).into(iv_test2);

效果图例如以下:

android:强大的图片下载和缓存库Picasso


2.3。支持设置载入之前的图片,和载入失败后的图片。

如:

Picasso.with(this)
	    .load("http://i.imgur.com/DvpvklR.png")
	    .placeholder(R.drawable.abc)
	    .error(R.drawable.ic_launcher)
	    .transform(new CropSquareTransformation())
	    .into(iv_test1);

ImageView创建时显示abc.png,假设载入成功,显示的是DvpvklR.png,假设载入失败,显示ic_launcher.png.

2.4支持载入本地图片和sdcard中的图片文件等。

Picasso.with(context).load(R.drawable.landing_screen).into(imageView1);
Picasso.with(context).load(new File(...)).into(imageView2);


Picasso下载地址:http://square.github.io/picasso/

未经同意不得用于商业目的
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/118707.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(1)


相关推荐

  • matlab画圆的命令_matlab 如何画圆[通俗易懂]

    matlab画圆的命令_matlab 如何画圆[通俗易懂]展开全部symsab;ezplot((2-a).^2+(50-b).^2);为什么这样画只能出现一个点?636f707962616964757a686964616f31333335313161不能出现一个圆答:这时圆没有半径,r=0;symsab;ezplot((2-a).^2+(50-b).^2-1);解答:(MatlabR2013b)>>symsab&…

  • silverlight开发教程_手机安装silverlight插件

    silverlight开发教程_手机安装silverlight插件教程地址:http://kb.cnblogs.com/zt/silverlight/

  • RestSharp_restbed

    RestSharp_restbedRestSharp介绍RestSharp是一个.NET平台下REST和HTTPAPI的开源客户端库,支持的平台包括.NET3.5/4、Mono、MonoforAndroid、MonoTouch、WindowsPhone7.1Mango、WindowsPhone8.1。RestSharp可以简化用户访问Restful的服务过程,在这里下载代码可以让用户更简单的使用RestSha…

  • springbean生命周期通俗一点_java servlet生命周期

    springbean生命周期通俗一点_java servlet生命周期一、springBean的生命周期1、启动spring容器,也就是创建beanFactory(bean工厂),一般用的是beanFactory的子类applicationcontext,applicationcontext比一般的beanFactory要多很多功能,比如aop、事件等。通过applicationcontext加载配置文件,或者利用注解的方式扫描将bean的配置信息加载到spring容器里面。2、加载之后,spring容器会将这些

  • OPKG命令执行过程分析

    OPKG命令执行过程分析一、简介Opkg是一个基于ipkg的轻量级的软件包管理系统,主要用于嵌入式系统,目前应用opkg的有OpenWRT和OpenEmbedded。1Opkg的详细使用方法可以参考OpenWRT的WIKI页面2,不再赘述,本文将重点解释opkg的工作原理。Opkg的源代码可以在GoogleCode3或YoctoProject4上找到。Opkg的版本目前到了0.3.05,我使用的

  • webstorm2021.11激活码(注册激活)

    (webstorm2021.11激活码)本文适用于JetBrains家族所有ide,包括IntelliJidea,phpstorm,webstorm,pycharm,datagrip等。IntelliJ2021最新激活注册码,破解教程可免费永久激活,亲测有效,下面是详细链接哦~https://javaforall.cn/100143.html…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号