2016-04-22 65 views
0

我想在圓形等形狀上使用填充方法。android,app paint如何填充

這是一邊工作,但當我試圖填充左側和右側的應用程序停止 工作。

我不知道我在做什麼錯;也許有簡單的方法。

這裏是填充/繪製FUNC(這是不完整的油漆代碼)代碼:

@Override 
protected void onDraw(Canvas canvas) { 
    if(z==true) { 
     int a = (int) (x); 
     int b = (int) (y); 
     float x1,y1; 
     if(canvasBitmap.getPixel(a,b)!=Color.RED) 
     { 
      for(;a<wo;a++) 
      for(;b<ho;b++) 
      if(canvasBitmap.getPixel(a,b)!=Color.RED && a<wo) 
      { 
       x1=(float) (a); 
       y1=(float) (b); 
       drawPaint.setStyle(Paint.Style.STROKE); 
       canvas.drawBitmap(canvasBitmap, 0, 0, drawPaint); 
       canvas.drawPath(drawPath, drawPaint); 
      } 
      else 
      { 
      a=wo+34; 
      b=ho+34; 
      } 

     } 
     else 
     { 

      drawPaint.setStyle(Paint.Style.STROKE); 
      canvas.drawBitmap(canvasBitmap, 0, 0, drawPaint); 
      canvas.drawPath(drawPath,drawPaint); 

     } 

    } 
    else 
    switch (pick) { 

     case 1: 
      drawPaint.setStyle(Paint.Style.STROKE); 
      canvas.drawBitmap(canvasBitmap, 0, 0, drawPaint); 
      drawCanvas.drawCircle(x,y,brushSize,drawPaint); 
      break; 
     case 2: 
      drawPaint.setStyle(Paint.Style.STROKE); 
      canvas.drawBitmap(canvasBitmap, 0, 0, drawPaint); 
      drawCanvas.drawLine(x, y, brushSize, brushSize, drawPaint); 
      break; 
     case 3: 
      drawPaint.setStyle(Paint.Style.STROKE); 
      canvas.drawBitmap(canvasBitmap, 0, 0, drawPaint); 
      drawCanvas.drawRect(x,brushSize,y,brushSize,drawPaint); 
      break; 
     default: 
      drawPaint.setStyle(Paint.Style.STROKE); 
      canvas.drawBitmap(canvasBitmap, 0, 0, drawPaint); 
      canvas.drawPath(drawPath,drawPaint); 




    } 

} 

回答

0

爲了填補一個圓圈:

@Override 
protected void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.drawCircle(centerX, centerY, radius, mOverlayPaint); 
} 

mOverlayPaint = new Paint(); 
mOverlayPaint.setColor(Color.RED); 
mOverlayPaint.setStrokeWidth(10); 

onDraw這個簡單的電話會畫一個紅色圓圈,你可以計算/決定你的圓圈位置和radi我們如你所願