画布在现有图像后面绘制圆形
问题描述:
请帮我解释我在做什么错误。我必须使用基于应用程序逻辑的不同颜色在图像后面绘制一个圆圈(以位图形式给出),我使用以下代码。画布在现有图像后面绘制圆形
Bitmap workingBitmap = Bitmap.createBitmap(bitmap);
Bitmap mutableBitmap = workingBitmap.copy(Bitmap.Config.ARGB_8888, true);
Canvas canvas = new Canvas(mutableBitmap);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
int horizontalPadding = (iconSize - drawingWidth)/2;
int verticalPadding = (iconSize - drawingHeight)/2;
canvas.drawCircle(120, 120, 100, paint);
return mutableBitmap;
什么,我得到的是形象,这只是完全覆盖图像,如何告诉图像具有上层上面的代码了一圈。
谢谢
答
在您的代码中,您使用mutableBitmap作为画布并在其上画圆。如果您想在圆圈上方绘制图像,应在绘制圆圈后绘制它。代码:
Bitmap workingBitmap = Bitmap.createBitmap(bitmap);
Bitmap mutableBitmap = workingBitmap.copy(Bitmap.Config.ARGB_8888, true);
// Create an empty bitmap
Bitmap output = Bitmap.createBitmap(mutableBitmap.getWidth(), mutableBitmap.getHeight(),
mutableBitmap.getConfig());
// Use empty bitmap as canvas
Canvas canvas = new Canvas(output);
Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.BLUE);
paint.setStyle(Paint.Style.FILL_AND_STROKE);
int horizontalPadding = (iconSize - drawingWidth)/2;
int verticalPadding = (iconSize - drawingHeight)/2;
canvas.drawCircle(120, 120, 100, paint);
// And now draw image above circle
canvas.drawBitmap(mutableBitmap, 0, 0, null);
return output;
谢谢你的工作 –