Glide库加载rounded图片

来源:互联网 发布:编程中打空格影响吗 编辑:程序博客网 时间:2024/06/05 07:08
           **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这些东西.\
是不是很强大呢???

0 0
原创粉丝点击