Canvas 在现有图像后面绘制圆圈
Canvas drawCircle behind an existing image
请帮我弄清楚我做错了什么。我必须根据应用程序逻辑用不同的颜色在图像(以位图形式给出)后面画一个圆圈,我使用以下代码。
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 用作 canvas 并在其上绘制圆圈。如果你想在圆上面画你的图像,你应该在画圆之后画它。代码:
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;
请帮我弄清楚我做错了什么。我必须根据应用程序逻辑用不同的颜色在图像(以位图形式给出)后面画一个圆圈,我使用以下代码。
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 用作 canvas 并在其上绘制圆圈。如果你想在圆上面画你的图像,你应该在画圆之后画它。代码:
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;