您的位置:首页 > 其它

Glide加载圆形,圆角图片

2017-11-15 14:51 357 查看
public class GlideUtil {
/**
* 加载圆形图片
* @param context
* @param url
* @param imageView
*/
public static void loadCircleImageView(final Context context, String url, final ImageView imageView){
Glide.with(context).load(url).asBitmap().centerCrop()
.placeholder(R.drawable.pic_placeholder)
.into(new BitmapImageViewTarget(imageView) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable = RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCircular(true);
imageView.setImageDrawable(circularBitmapDrawable);
}
});
}

/**
* 加载圆形图片
* @param context
* @param url
* @param imageView
*/
public static void loadCircleImageView(final Context context, String url, final ImageView imageView, int def){
try {
Glide.with(context).load(url).asBitmap().centerCrop()
.placeholder(def)
.into(new BitmapImageViewTarget(imageView) {
@Override
protected void setResource(Bitmap resource) {
RoundedBitmapDrawable circularBitmapDrawable =
RoundedBitmapDrawableFactory.create(context.getResources(), resource);
circularBitmapDrawable.setCircular(true);
imageView.setImageDrawable(circularBitmapDrawable);
}
});
} catch (Exception e) {
e.printStackTrace();
}

}

/**
* 加载圆角图片
*/
public static void loadRoundImageView(final Context context, String url, final ImageView imageView,float r){
Glide.with(context).load(url).diskCacheStrategy(DiskCacheStrategy.ALL)
.transform(new CornersTransform(context, r))
.placeholder(R.drawable.pic_placeholder)
.into(imageView);
}

/**
* 加载普通形状图片
* @param context
* @param url
* @param imageView
*/
public static void loadImageView(Context context, String url, ImageView imageView){
Glide.with(context).load(url)
.diskCacheStrategy(DiskCacheStrategy.ALL)
.placeholder(R.drawable.pic_placeholder)
.into(imageView);
}
/**
* 圆角效果的Transform
* Created by Raye on 2016/5/10.
*/
public static class CornersTransform  extends BitmapTransformation {
private float radius;
public CornersTransform(Context context) {
super(context);
radius = 10;
}

public CornersTransform(Context context,float radius){
super(context);
Log.d("print", "CornersTransform: -->"+radius);
this.radius = radius;
}

@Override
protected Bitmap transform(BitmapPool pool, Bitmap toTransform, int outWidth, int outHeight) {
return cornersCrop(pool,toTransform);
}
private Bitmap cornersCrop(BitmapPool pool, Bitmap source) {
if (source == null) return null;

Bitmap result = pool.get(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
if (result == null) {
result = Bitmap.createBitmap(source.getWidth(), source.getHeight(), Bitmap.Config.ARGB_8888);
}

Canvas canvas = new Canvas(result);
Paint paint = new Paint();
paint.setShader(new BitmapShader(source, BitmapShader.TileMode.CLAMP, BitmapShader.TileMode.CLAMP));
paint.setAntiAlias(true);
RectF rectF = new RectF(0f, 0f, source.getWidth(), source.getHeight());
canvas.drawRoundRect(rectF, radius, radius, paint);
return result;
}

@Override
public String getId() {
return getClass().getName();
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: