protected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

userHead= (ImageView) findViewById(R.id.userhead);

Bitmap b = BitmapFactory.decodeResource(getResources(),R.mipmap.my);

userHead.setImageBitmap(toRoundBitmap(b));

}

/**

* 圆形

*@parambitmap

*@return

*/

publicBitmaptoRoundBitmap(Bitmap bitmap) {

//圆形图片宽高

intwidth = bitmap.getWidth();

intheight = bitmap.getHeight();

//正方形的边长

intr =0;

//取最短边做边长

if(width > height) {

r = height;

}else{

r = width;

}

//构建一个bitmap

Bitmap backgroundBmp = Bitmap.createBitmap(width,

height,Bitmap.Config.ARGB_8888);

//new一个Canvas,在backgroundBmp上画图

Canvas canvas =newCanvas(backgroundBmp);

Paint paint =newPaint();

//设置边缘光滑,去掉锯齿

paint.setAntiAlias(true);

//宽高相等,即正方形

RectF rect =newRectF(0,0,r,r);

//通过制定的rect画一个圆角矩形,当圆角X轴方向的半径等于Y轴方向的半径时,

//且都等于r/2时,画出来的圆角矩形就是圆形

canvas.drawRoundRect(rect,r/2,r/2,paint);

//设置当两个图形相交时的模式,SRC_IN为取SRC图形相交的部分,多余的将被去掉

paint.setXfermode(newPorterDuffXfermode(PorterDuff.Mode.SRC_IN));

//canvas将bitmap画在backgroundBmp上

canvas.drawBitmap(bitmap, null,rect,paint);

//返回已经绘画好的backgroundBmp

returnbackgroundBmp;}

    开源框架 Glide 和picaso等 都可以实现

更多相关文章

  1. Glide 使用 +圆形图+圆角图
  2. 仿迅雷下载球
  3. Android(安卓)自定义控件一 带圆形进度的按钮 ControlButton2
  4. 自定义圆形ProgressBar
  5. Android圆形图片控件RoundedImageView
  6. Android正方形View
  7. Android(安卓)L 沉浸式状态栏和圆形动画实现炫酷效果
  8. Android(安卓)设置圆角图片
  9. Android圆形图片或者圆角图片的快速实现

随机推荐

  1. 面试题八:事件分发机制
  2. android真机调试问题,看不到logcat信息
  3. Android(安卓)Studio Rebuild失败:Could n
  4. 【Android 系统开发】使用 Source InSigh
  5. Android 关于集成第三方SDK的汇总
  6. android时序图 以及UML中时序图、流程图
  7. Android Studio:xxx is not an enclosing
  8. Android动态部署一:Google原生Split APK浅
  9. android五种布局特点
  10. Android(安卓)横竖屏切换时不销毁当前act