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/

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

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

(1)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Vue(4)Vue指令的学习1「建议收藏」

    Vue(4)Vue指令的学习1「建议收藏」前言Vue官网一共有提供了14个指令,分别如下v-textv-htmlv-showv-if☆☆☆v-else☆☆☆v-else-if☆☆☆v-for☆☆☆v-on☆☆☆v

    2022年7月31日
    5
  • arm cortex-a57 cpu_处理器a73和a53

    arm cortex-a57 cpu_处理器a73和a53在如今这个电子产品泛滥的年代,仅仅靠品牌或是外观已经不足以辨别产品的优劣,其内置的处理器自然也就成为了分辨产品是否高端的标准之一。那么我们今天就不妨好好了解一下近几年来电子产品中较为主流的RAM处理器。  在这之前让我们先简单认识一下处理器的架构。所谓处理器架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。目前市面上的CPU指令集分类主要分有…

    2022年8月31日
    16
  • loadrunner server压力测试 sql_LoadRunner压力测试实例.pdf[通俗易懂]

    loadrunner server压力测试 sql_LoadRunner压力测试实例.pdf[通俗易懂]论坛测试资源交流区专用LoadRunner压力测试实例摘要:本文通过实例讲解介绍了LoadRunner工具的使用,介于公司的实际情况,文中主要是对工具的基本使用做了详细描述,高级运用方面除性能计数器与参数设置外其它均未涉及,待以后补充。目的是使公司人员根据该手册便可以独立运用Loadrunner进行压力测试主题词:Loadrunner工具压力测试1LoadRunne…

    2022年7月18日
    18
  • Lamp架构_lamp部署

    Lamp架构_lamp部署lamp(Web应用软件组合)Linux+Apache+Mysql/MariaDB+Perl/PHP/Python一组常用来搭建动态网站或者服务器的开源软件,本身都是各自独立的程序,但是因为常被放在一起使用,拥有了越来越高的兼容度,共同组成了一个强大的Web应用程序平台。随着开源潮流的蓬勃发展,开放源代码的LAMP已经与J2EE和.Net商业软件形成三足鼎立之势,并且该软件开发的项目在软件方…

    2022年10月16日
    2
  • 基于chromium for android开发Android浏览器

    基于chromium for android开发Android浏览器在上一篇文章<>中谈到了Google已经完全开源了ChromiumforAndroid,这样我们就完全可以开发与ChromeforAndroid媲美的Android浏览器了。通常浏览器的一些新特性和新功能会先出现在ChromiumforAndroid上,稳定后才会出现在ChromeforAndroid上,如果我们基于Chromiu

    2022年5月15日
    34
  • div:给div加滚动栏 div的滚动栏设置

    div:给div加滚动栏 div的滚动栏设置

    2021年12月4日
    50

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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