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

来源:互联网 发布:从零开始学java 编辑:程序博客网 时间:2024/06/06 01:45

        网上很多圆形头像都是自定义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就是你想要的圆形头像了;
效果图如下:


0 0
原创粉丝点击