Android(安卓)Bitmap 圆角
16lz
2022-05-31
第一种是生成圆角背景:
第二种是真的圆角的位图:
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;}
更多相关文章
- android 生成圆角和带倒影图片
- Android绘制圆形图片(五)
- android Bitmap getByteCount和getRowBytes
- Android(安卓)bitmap位图旋转
- 一个Android实现图片的倒影效果的代码示例
- Android(安卓)设置全屏,画图,加载位图
- Android记事本的开发
- android之bitmap详解
- Android(安卓)Glide设置图片圆角,亲测有效