http://blog.it985.com/14794.html,感谢该作者
Picasso的GITHUB地址:https://github.com/square/picasso。
怎么实现各种各样的图片样式呢?
其原理是在Picasso里提供了Transformation这个接口,实现该接口,编写绘制图形的代码。
实现该接口的两个抽象方法transform(),key()。
代码从原博客拷贝过来的。
public class CircleTransform implements Transformation {
@Overridepublic 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;
}@Overridepublic String key() {
return "circle";
}}这样使用它:
Picasso.with(activity).load(mayorShipImageLink).transform(new CircleTransform()).into(ImageView);