根据Bitmap生成圆形的Bitmap,通过图片的宽高确定圆形图片的圆心半径等,再生成圆形的图片,主要代码如下

publicBitmaptoRoundBitmap(Bitmapbitmap){try{intwidth=bitmap.getWidth();intheight=bitmap.getHeight();floatroundPx;floatleft,top,right,bottom,dst_left,dst_top,dst_right,dst_bottom;if(width<=height){roundPx=width/2;top=0;bottom=width;left=0;right=width;height=width;dst_left=0;dst_top=0;dst_right=width;dst_bottom=width;}else{roundPx=height/2;floatclip=(width-height)/2;left=clip;right=width-clip;top=0;bottom=height;width=height;dst_left=0;dst_top=0;dst_right=height;dst_bottom=height;}Bitmapoutput=Bitmap.createBitmap(width,height,Config.ARGB_8888);Canvascanvas=newCanvas(output);finalintcolor=0xff424242;finalPaintpaint=newPaint();finalRectsrc=newRect((int)left,(int)top,(int)right,(int)bottom);finalRectdst=newRect((int)dst_left,(int)dst_top,(int)dst_right,(int)dst_bottom);finalRectFrectF=newRectF(dst);paint.setAntiAlias(true);canvas.drawARGB(0,0,0,0);paint.setColor(color);canvas.drawRoundRect(rectF,roundPx,roundPx,paint);paint.setXfermode(newPorterDuffXfermode(Mode.SRC_IN));canvas.drawBitmap(bitmap,src,dst,paint);returnoutput;}catch(Exceptionex){Log.v("ToRoundBitmap","error:"+ex.getMessage());returnbitmap;}