2010-11-02 8 views
1

J'utilise les éléments suivants pour dessiner des rectangles aux coins arrondis dans mon application Android et il semble bien fonctionner mais avec un problème mineur:Regarder étranges dans Android Rectangles Arrondis

// Draw the control buttons 
paint.setColor  (Color.DKGRAY); 
paint.setStyle  (Style.FILL); 
canvas.drawRoundRect (zPlusRectF, 12, 12, paint); 
canvas.drawRoundRect (zMinusRectF, 12, 12, paint); 

paint.setColor  (Color.LTGRAY); 
paint.setStyle  (Style.STROKE); 
canvas.drawRoundRect (zPlusRectF, 12, 12, paint); 
canvas.drawRoundRect (zMinusRectF, 12, 12, paint); 

paint.setColor  (Color.WHITE); 
paint.setStyle  (Style.FILL); 
paint.setTextSize (BUTTON_TEXT_SIZE); 

... (Adding labels to the rectF's defined above follows) ... 

La chose étrange est que les deux extrémités du rectangle ne sont pas arrondies par-dessus. Les quarts de cercle de gauche sont nettement plus petits que ceux de droite.

Quelqu'un a-t-il ressenti quelque chose de similaire? C'est assez bizarre que je puisse changer d'avis sur les coins arrondis si je ne peux rien y faire ... Et si je savais comment faire une capture d'écran de mon Android, je le ferais.

Merci, R.

Edit: Les rectangles en question sont 78 pixels de large et 48 de haut, si cela aide (et depuis ykatchou peut être sur quelque chose).

Répondre

0

Le problème s'est avéré être une fonction d'anti-aliasing. Lorsque vous dessinez des graphiques 2D sous Android (et probablement ailleurs, aussi), et la règle empirique qui fonctionne pour moi est:

Activez l'anticrénelage pour les courbes et le texte, mais désactivez-les pour les lignes droites.

Une fois que j'ai fait attention à la gestion de l'état anti-aliasing dans mes méthodes de dessin, ce problème a été corrigé.

0

Peut-être un problème de nombre de pixels? Je veux dire un problème rond dû à "antialiasing".

Probablement hors de propos, mais vous pouvez peut-être envisager d'utiliser le rayon de bordure du panneau.