Comment puis-je tracer une ligne/arc avec des coins arrondis comme vous pouvez le voir sur l'image ci-dessous? J'ai besoin de dessiner ceci sur Canvas
.Android: Comment dessiner une ligne avec un coin arrondi?
0
A
Répondre
3
Je pense que vous pouvez contourner ce en dessinant trois lignes avec un chevauchement partiel:
- deux lignes externes avec
Paint.Cap.ROUND
- une ligne intérieure avec
Paint.Cap.BUTT
supposant vos données d'entrée sont
float lineWidth = 20;
float lineRadius = 100;
float cornerRadius = 2;
Vous allez comme suit,
float width, radius;
// Draw outer lines
paint.setStrokeCap(Paint.Cap.ROUND);
width = cornerRadius * 2;
// Draw inner
radius = lineRadius - lineWidth/2f + cornerRadius;
canvas.draw(...)
// Draw outer
radius = lineRadius + lineWidth/2f - cornerRadius;
canvas.draw(...)
// Draw center
paint.setStrokeCap(Paint.Cap.BUTT);
width = lineWidth - 2f*cornerRadius;
radius = lineRadius;
canvas.draw(...)
Vous pourriez avoir besoin de modifier légèrement l'angle de l'arc pour la ligne médiane (il doit être cornerRadius
plus, de chaque côté), mais qui est facile.
+0
Dans cet exemple 'largeur' est essentiellement la largeur du trait, et' rayon' est la distance entre le centre du cercle et le milieu de chaque ligne. Je ne sais pas ce que 'Canvas' prend en entrée, mais cela devrait être facile à modifier. – natario
Avez-vous regardé 'Paint.Cap.ROUND'? – natario
oui, mais un cercle fait un grand cercle à la fin J'ai besoin de deux coins arrondis – Michal