Android 图片设置圆角
android中经常会遇到对图片进行二次处理,例如加圆角,或者显示圆形图片
方法一:
通过第三方框架glide实现图片显示有圆角,有三种写法如下:
1.1,第一种实现:
requestoptions options = new requestoptions().error(r.drawable.img_load_failure).bitmaptransform(new roundedcorners(30));//图片圆角为30
glide.with(this).load(url) //图片地址
.apply(options)
.into(imagview);
1.2,第二种实现:
requestoptions requestoptions = new requestoptions();
requestoptions.placeholder(r.drawable.ic_launcher_background);
requestoptions.circlecroptransform();
requestoptions.transforms( new roundedcorners(30));
glide.with(this).load(url) //图片地址
.apply(options)
.into(imagview);
1.3,第三种实现:
requestoptions options = new requestoptions().centercrop() .transform(new roundtransform(this,30));
glide.with(this).load(url) //图片地址
.apply(options)
.into(imagview);
public class roundtransform extends bitmaptransformation {
private static float radius = 0f;
public roundtransform(context context) {
this(context, 4);
}
public roundtransform(context context, int dp) {
super(context);
this.radius = resources.getsystem().getdisplaymetrics().density * dp;
}
@override
protected bitmap transform(bitmappool pool, bitmap totransform, int outwidth, int outheight) {
bitmap bitmap = transformationutils.centercrop(pool, totransform, outwidth, outheight);
return roundcrop(pool, bitmap);
}
private static bitmap roundcrop(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);
} 无锡人流多少钱 http://www.bhnfkyy.com
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;
}
public string getid() {
return getclass().getname() + math.round(radius);
}
@override
public void updatediskcachekey(messagedigest messagedigest) {
}
}
上一篇: 我们部门经理是个很喜感的小老头