2017-04-03 9 views
1

J'essaye de tracer une ligne, mais je continue à avoir des problèmes. Je veux réaliser quelque chose comme ceci:Deux rectangles l'un à côté de l'autre ne fonctionnent pas (Java)

enter image description here

private Paint red = new Paint(); 
private Paint orange = new Paint(); 

red.setColor(Color.parseColor("#FF0000")); 
orange.setColor(Color.parseColor("#FF8C00")); 

canvas.drawRect(0, 400, 300, 0, red); 
canvas.drawRect(300, 400, 300, 0, orange); 

La barre orange se trouve juste au même endroit que le rouge ... Pourquoi?

+1

'drawRect (gauche, haut, droite, bas, peinture)' .. votre rectangle orange a une mesure horizontale de '0' (va de 300 à 300). peut-être essayer de faire votre droit '600' à la place et voir si cela met le rectangle orange où vous l'attendez. – trooper

Répondre

1

Pouvez-vous voir que la longueur du rectangle orange (300-300) est 0 dans votre code. C'est pourquoi vous ne pouvez pas le voir. Alors essayez ceci:

canvas.drawRect(0, 400, 300, 0, red); 
    canvas.drawRect(300, 400, 600, 0, orange); 
0

Jetez un oeil à la documentation à nouveau: Canvas.drawRect

drawRect(float left, float top, float right, float bottom, Paint paint) 
Draw the specified Rect using the specified paint. 

Ainsi, vos deux dernières valeurs de coordonnées (right et bottom) ne sont pas la longueur, mais la position.

0

Vous avez le top de 400 et le bas de 0. C'est étrange. Vous pourriez vouloir les échanger. Cependant, le problème est que votre première ligne a une limite gauche de 0 et la limite droite de 300, alors que la deuxième ligne est un point orange, ayant la limite gauche de 300 et la limite droite exactement là, à 300.