**Glide库加载rounded图片**
Glide库是Google推荐的图片加载库,使用起来非常方便,节省了我们写冗余代码的时间。让我们把时间关注在实现代码逻辑上。
此处参考了国外大牛写的文章。地址在这里http://vardhan-justlikethat.blogspot.in/2014/09/android-image-loading-libraries-picasso.html
有兴趣的可以去看看。代码也很简单.
首先是一个工具类,把图片转换成rounded图片,代码如下:
public class ImageUtils {
public static Bitmap getCircularBitmapImage(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, Bitmap.Config.ARGB_8888);
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;
}
}
然后是重写transform方法:
public class GlideCircleTransform extends BitmapTransformation {
public GlideCircleTransform(Context context) {
super(context);
}
//重写此方法得到rouonded图片
@Override
protected Bitmap transform(BitmapPool pool, Bitmap source, int outWidth, int outHeight) {
return ImageUtils.getCircularBitmapImage(source);
}
@Override
public String getId() {
return "Glide_Circle_Transformation";
}
}
最后只要调用一下api就可以了:
Glide.with(this).load("http://nuuneoi.com/uploads/source/playstore/cover.jpg").transform(new GlideCircleTransform(this) )
.into(image);
截图:
是不是非常简单……..还有要说的是Glide已经自动把下载下来的图片缓存到本地了,节省了我们很多写什么inputstream.outputstream这些东西.\
是不是很强大呢???