2017-09-11 53 views
0

请帮我解释我在做什么错误。我必须使用基于应用程序逻辑的不同颜色在图像后面绘制一个圆圈(以位图形式给出),我使用以下代码。画布在现有图像后面绘制圆形

 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; 

什么,我得到的是形象,这只是完全覆盖图像,如何告诉图像具有上层上面的代码了一圈。

谢谢

回答

1

在您的代码中,您使用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; 
+0

谢谢你的工作 –