Picasoo and Glide
来源:互联网 发布:英语水平测试软件 编辑:程序博客网 时间:2024/06/16 23:32
今天有点时间,就想起来玩玩Picasoo和Glide的图片框架,最早的时候使用的是universial-imagelaoder框架(支持内存和磁盘缓存),再后来接触道了xUtils3综合型框架,就一直用的xUtils3里的图片模块(默认只是内存缓存),今天看了下毕加索图片框架和Glide,感觉也好6!也都支持内存和磁盘缓存!官方地址:http://square.github.io/picasso/。 https://github.com/bumptech/glide。可以下载jar包用或者compile随意:
Picasso:
compile 'com.squareup.picasso:picasso:2.5.2'
Glide:
compile 'com.github.bumptech.glide:glide:3.7.0'
加载网络图片也是一句代码的事:
Picasso.with(context).load("http://i.imgur.com/DvpvklR.png").into(imageView);—————————————————————————————————————————————————————————————————————————————Glide.with(context).load(url).asBitmap().format(DecodeFormat.PREFER_ARGB_8888).into(imageView);
简直就是双胞胎!
我想小伙伴最关心的应该是这句:
字面意思上就是:都支持内存和磁盘缓存。
设置一些图片参数:
Picasso.with(MainActivity.this) .load(url) .resize(50, 50)//设置宽高 .centerCrop()//必须和resize同时使用 .placeholder(R.drawable.user_placeholder)//加载中显示的图片 .error(R.drawable.user_placeholder_error)//加载失败显示的图片 .noFade()//取消图片渐显的效果 .config(Bitmap.Config.ARGB_8888)//图片格式(源码中推荐用这个) .into(mImageView);
这是Picasso的参数设置,当然,还有别的参数,根据具体需求来选择相应的参数设置。Glide的就不贴了!
———————————————————————————————————————————————————————————————
实际开发的时候,有时会需求设置成带弧度圆角图片或者干脆是圆形图片
代码实现是这样的(Picasso和Glide都这样设置,这里以Picasso为例):
Picasso.with(MainActivity.this).load(url).transform(new CircleTransform()).into(mImageView);
下面是实现圆角和圆形的2个图片剪裁的类:
圆形:
package view;import android.graphics.Bitmap;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.Paint;import com.squareup.picasso.Transformation;public class CircleTransform 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 squaredBitmap = Bitmap.createBitmap(source, x, y, size, size); if (squaredBitmap != source) { source.recycle(); } Bitmap bitmap = Bitmap.createBitmap(size, size, source.getConfig()); Canvas canvas = new Canvas(bitmap); Paint paint = new Paint(); BitmapShader shader = new BitmapShader(squaredBitmap, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP); paint.setShader(shader); paint.setAntiAlias(true); float r = size / 2f; canvas.drawCircle(r, r, r, paint); squaredBitmap.recycle(); return bitmap; } @Override public String key() { return "circle"; }}
圆角:
package view;import android.graphics.Bitmap;import android.graphics.BitmapShader;import android.graphics.Canvas;import android.graphics.Paint;import android.graphics.RectF;import android.graphics.Shader;public class RoundedTransformation implements com.squareup.picasso.Transformation { private final int radius; private final int margin; public RoundedTransformation(final int radius, final int margin) { this.radius = radius; this.margin = margin; } @Override public Bitmap transform(final Bitmap source) { final Paint paint = new Paint(); paint.setAntiAlias(true); paint.setShader(new BitmapShader(source, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP)); Bitmap output = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(output); canvas.drawRoundRect(new RectF(margin, margin, source.getWidth() - margin, source.getHeight() - margin), radius, radius, paint); if (source != output) { source.recycle(); } return output; } @Override public String key() { return "rounded"; }}
PS:就这两款图片框架来说,据说Glide的性能比Picasso的做的好!具体怎么个好法,请自行百度!
0 0
- Picasoo and Glide
- glide
- Glide
- Glide
- glide
- Glide
- Glide
- Glide
- Glide
- glide
- Glide
- Glide
- Glide
- Glide
- Glide
- Glide
- Glide
- Glide
- 浅谈 --- 全局函数
- Google Protocol Buffer 的使用和原理
- Linux 的常用命令
- 51Nod 1118 机器人走方格 (排列组合)
- 笔记:图形报表
- Picasoo and Glide
- 深入理解Java的接口类和抽象类
- iOS颜色开发设置详解
- 封装与访问权限修饰符
- 数据库事务四大特性
- 轻量级分布式 RPC 框架
- 深入理解Android(二):Java虚拟机Dalvik
- (转)ubuntu-restricted-extras
- 有下限的网络流