public static Bitmap getcircleAvatar (Context context ,Bitmap avatr){
Bitmap bitmap =Bitmap . createBitmap( avatr .getWidth () , avatr .getHeight () , Bitmap .Config . ARGB_8888) ;
Canvas canvas = new Canvas (bitmap ) ;
Paint paint = new Paint (Paint . ANTI_ALIAS_FLAG) ;
paint .setColor ( Color. BLACK );
//取较小的值,记得/2因为是半径(如果是长方形)
float radius = Math .min ( avatr. getWidth (), avatr .getHeight ()) /2 ;
canvas .drawCircle ( avatr. getWidth ()/ 2 , avatr .getHeight () /2 , radius , paint ) ;
//设置PorterDuff这两个人研究出的那个模式
paint .setXfermode ( new PorterDuffXfermode (Mode . SRC_IN)) ;
canvas .drawBitmap ( avatr, 0, 0 , paint );
//画白边
paint .setColor ( Color. BLACK );
paint .setStyle ( Paint. Style .STROKE ) ;
float strokeWidth = TypedValue .applyDimension ( TypedValue. COMPLEX_UNIT_DIP ,1 , context .getResources () .getDisplayMetrics ()) ;
paint .setStrokeWidth ( strokeWidth) ;
canvas .drawCircle ( avatr. getWidth ()/ 2 , avatr .getHeight () /2 , radius - strokeWidth/ 2 , paint );
return bitmap ;
}
直接搞进去传值即可调用,不想画边可以吧 //花白边 部分下面删掉即可,开袋即食。
将图片切成圆形
最新推荐文章于 2018-12-24 11:07:50 发布