Android 自定义圆形头像(简单的画出来,不需要自定义view)

        网上很多圆形头像都是自定义view,继承imageView实现,我自己写了个很简单的实现方式,只需要原图+Canvas+Paint+BitmapShader就可以制作出圆形头像;

代码:

Bitmap result = Bitmap.createBitmap(height, height, Bitmap.Config.ARGB_8888);//创建一个height正方形的位图;
Canvas mCanvas = new Canvas(result);//创建result位图的画布;

Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG);//创建画笔并设置去锯齿;
paint.setAntiAlias(true);
paint.setFilterBitmap(true);

Paint paintOval = new Paint(Paint.ANTI_ALIAS_FLAG);
paintOval.setAntiAlias(true);
paintOval.setFilterBitmap(true);


BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);//创建shader,bitmap就是你要裁剪成圆形的图片;
paintOval.setShader(shader);

int border=3;//设置边框的宽度;
RectF bounds = new RectF(border, border, height-border, height-border);//所需裁剪图片的矩形框
RectF boundsBg = new RectF(0, 0, height, height);//边框的矩形框

mCanvas.drawOval(bounds, paintOval);//此时就把你所需裁剪成圆形的图片画上去了;
//如果你需要加个圆形边框,就需要加上这段
paint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_ATOP));
paint.setColor(Color.WHITE);//边框颜色设置
mCanvas.drawOval(boundsBg, paint);
//到这来result就是你想要的圆形头像了;

效果图如下:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值