使用Picasso将加载的图片变成圆形

http://blog.it985.com/14794.html,感谢该作者

Picasso的GITHUB地址:https://github.com/square/picasso。

怎么实现各种各样的图片样式呢?

其原理是在Picasso里提供了Transformation这个接口,实现该接口,编写绘制图形的代码。

实现该接口的两个抽象方法transform(),key()

代码从原博客拷贝过来的。

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" ;
}
}
这样使用它:
Picasso.with(activity).load(mayorShipImageLink).transform(new CircleTransform()).into(ImageView);

转载于:https://www.cnblogs.com/fajieyefu/p/5777491.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值