2017-08-18 1 views
2

I Leinwand in android bin mit und ich zog mit vier Partitionen in der Mitte des Bildschirms einen Kreis habe und mit einem Radius von 300Erhalten Sie spezifische Region Leinwand in android

ich blockiert bin, wie im Kreis nur ersten Trinkt von Bogen bekommen und füllen Sie das oder manipulieren Sie progratisch, ich möchte nicht darüber neu zeichnen, was Benutzer in ersten Bogen gezeichnet hat Ich möchte diese Region und neu streichen sie in einem anderen Bereich

Ich versuchte mit bekommen computeBounds, aber dann gibt es mir Region aus ersten Bogen auch

Ich brauche nur geschlossenen Grenzbereich des ersten Bogens im Kreis, dessen 4 Bögen bedeutet 4 Par titions

Jede Hilfe oder Hinweise würden

+0

Sie arc es zeichnen und füllen sich mit Hilfe verschiedener Farbe von Objekten mit unterschiedlicher Farbe erkannt werden, ist das sinnvoll unter i einige Beispielcodes geschrieben –

Antwort

0
public class CircleView extends View { 

    Paint paint,paint1,paint2,paint3; 

    public CircleView(Context context) { 
     super(context); 
    } 

    public CircleView(Context context, @Nullable AttributeSet attrs) { 
     super(context, attrs); 
     paint = new Paint(); 
     paint.setColor(Color.GREEN); 
     paint1 = new Paint(); 
     paint1.setColor(Color.BLACK); 
     paint2 = new Paint(); 
     paint2.setColor(Color.CYAN); 
     paint3 = new Paint(); 
     paint3.setColor(Color.MAGENTA); 


    } 

    public CircleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

    public CircleView(Context context, @Nullable AttributeSet attrs, int defStyleAttr, int defStyleRes) { 
     super(context, attrs, defStyleAttr, defStyleRes); 
    } 

    @Override 
    protected void onDraw(Canvas canvas) { 
     super.onDraw(canvas); 

     RectF rectF = new RectF(); 
     rectF.set(50,20,900,480); 
     // canvas.drawArc (rectF, 90, 45, true, paint); 
     // canvas.drawArc (rectF, 180, 90, true, paint1); 


     canvas.drawArc(rectF, 135, 180, false, paint); 
     canvas.drawArc(rectF, 135, 180 - 1, false,paint1); 
     canvas.drawArc(rectF, 90, 180+ 1, false,paint2); 
     canvas.drawArc(rectF, 90, 180, false, paint3); 
     canvas.drawArc(rectF, 45, 180, false, paint); 


    } 


} 
Verwandte Themen