第一种是生成圆角背景:
Button mView = (Button)findViewById(R.id.mView);Bitmap myCoolBitmap = ((BitmapDrawable) getResources().getDrawable(R.drawable.icon)).getBitmap();int w = myCoolBitmap.getWidth(), h = myCoolBitmap.getHeight();Bitmap rounder = Bitmap.createBitmap(w, h, Bitmap.Config.ARGB_8888);Canvas canvas = new Canvas(rounder);Paint xferPaint = new Paint(Paint.ANTI_ALIAS_FLAG);xferPaint.setColor(Color.RED);canvas.drawRoundRect(new RectF(0, 0, w, h), 20.0f, 20.0f, xferPaint);xferPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_IN));canvas.drawBitmap(myCoolBitmap, 0, 0, null);canvas.drawBitmap(rounder, 0, 0, xferPaint);Drawable drawable = new BitmapDrawable(rounder);  mView.setBackgroundDrawable(drawable);


第二种是真的圆角的位图:
public Bitmap getRoundedCornerBitmap(Bitmap bitmap) {// 创建一个指定宽度和高度的空位图对象Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),bitmap.getHeight(), Config.ARGB_8888);// 用该位图创建画布Canvas canvas = new Canvas(output);// 画笔对象final Paint paint = new Paint();// 画笔的颜色final int color = 0xff424242;// 矩形区域对象final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());// 未知final RectF rectF = new RectF(rect);// 拐角的半径final float roundPx = 30;// 消除锯齿paint.setAntiAlias(true);// 画布背景色canvas.drawARGB(0, 0, 0, 0);// 设置画笔颜色paint.setColor(color);// 绘制圆角矩形canvas.drawRoundRect(rectF, roundPx, roundPx, paint);// 未知paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));// 把该图片绘制在该圆角矩形区域中canvas.drawBitmap(bitmap, rect, rect, paint);// 最终在画布上呈现的就是该圆角矩形图片,然后我们返回该Bitmap对象return output;}

更多相关文章

  1. android 生成圆角和带倒影图片
  2. Android绘制圆形图片(五)
  3. android Bitmap getByteCount和getRowBytes
  4. Android(安卓)bitmap位图旋转
  5. 一个Android实现图片的倒影效果的代码示例
  6. Android(安卓)设置全屏,画图,加载位图
  7. Android记事本的开发
  8. android之bitmap详解
  9. Android(安卓)Glide设置图片圆角,亲测有效

随机推荐

  1. 创建 Android虚拟设备(AVD)
  2. Android MediaScanner源代码解析
  3. Android的OpenGL学习笔记(4)
  4. android studio中xml文件代码提示问题
  5. 卡片式UI的总结 android
  6. Android Audio Play Out Channel
  7. protobuf系列-grpc快速开始(Android)
  8. Android中String类型进行比较大小
  9. 取值 1111
  10. 2.1做拐角的bug