2012-04-12 20 views
4

Ich versuche, auf Leinwand einen Bogen auf diese Weise zu zeichnen:android Leinwand zeichnet nicht Arc

canvas.drawArc(getCircleRect(), 90, 270, true, PaintCreator.createStrokePaintForArc()); 

.. aber es gibt keinen sichtbaren Effekt

die Grenzen des Rect von getCircleRect bekommen() korrekt sind, und ich kann das rect auf diese Weise (nur für einen Test) zeichnen:

canvas.drawRect(getCircleRect(), PaintCreator.createStrokePaintForArc()); 

eine Ahnung, warum drawRect arbeitet und DrawArc nicht? Thanx


@Override 
public void onDraw(Canvas canvas) { 
    super.onDraw(canvas); 
    canvas.save(); 
    // not working 
    canvas.drawArc(getCircleRect(), 90, 270, true, PaintCreator.createFillPaintArc()); 
    // working well 
    canvas.drawRect(getCircleRect(), PaintCreator.createStrokePaintForArc()); 
    // working well 
    canvas.drawCircle(x, y, RADIUS, fillPaint); 
    move = false; 
    canvas.restore(); 
} 

Antwort

0

Ich bin nicht sicher, aber ich denke, Ihre Farbe Objekt könnte das Problem sein. Versuchen Sie diese

Paint mBgPaints = new Paint(); 
mBgPaints.setAntiAlias(true); 
mBgPaints.setStyle(Paint.Style.FILL); 
mBgPaints.setColor(Color.BLUE); 
mBgPaints.setStrokeWidth(0.5f); 
canvas.drawArc(getCircleRect(), 90, 270, true, mBgPaints); 
+0

hallo blessenm, leider Ihre Farbe hat nicht geholfen. Die gesamten Zeichenaufrufe befinden sich im OnDraw (Canvas-Zeichenbereich) in meiner benutzerdefinierten View-Klasse. – andrej

+0

Setzen Sie Ihren onDraw-Methodencode. Könnte etwas mehr Idee geben – blessenm

Verwandte Themen