2017-08-29 2 views
0

Dans l'image ci-dessous, j'essaie de comprendre comment dessiner les graduations vues sur le cadran de la montre. Je sais comment tracer des lignes, mais je ne sais pas comment dessiner des lignes "effilées" comme l'image. Comment puis-je accomplir cela pour Android Wear? Je pense que je dois créer un Path, mais je ne sais pas comment générer les coordonnées Path.Comment dessiner des graduations non carrées

ticks

+0

Que faire si vous utilisez un vecteur ou un autre png? – cutiko

+0

Je préfère ne pas si possible. Aucune autre raison que de ne pas avoir à gérer le chargement de bitmaps. – Nxt3

Répondre

2

Pour utiliser un Path que vous devez faire quelque chose comme ceci:

Path path = new Path(); 

// Start at the top left corner 
path.moveTo(screenCenterX - halfMarkerTopWidth, topMargin); 

// Draw a line to the top right corner 
path.lineTo(screenCenterX + halfMarkerTopWidth, topMargin); 

// Draw a line to the bottom right corner 
path.lineTo(screenCenterX + halfMarkerBottomWidth, topMargin + markerHeight); 

// Draw a line to the bottom left corner 
path.lineTo(screenCenterX - halfMarkerBottomWidth, topMargin + markerHeight); 

// Close the Path (will automatically draw a line back to the top left corner) 
path.close(); 

Ensuite, dessinez votre chemin 12 fois et juste tourner la toile 30 degrés entre chaque fois que vous dessinez.

canvas.save(); 
for (int i = 0; i < 12; i++) { 
    canvas.rotate(30, screenCenterX, screenCenterY); 
    canvas.drawPath(path, paint); 
} 
canvas.restore(); 
+0

Votre solution fonctionne - mais j'ai du mal à trouver comment la dessiner 12 fois maintenant. L'appel 'canvas.rotate (30)' ne donne pas le résultat attendu. – Nxt3

+0

Avez-vous une idée de la façon dont je pourrais pointer un de ces chemins à l'heure actuelle? – Nxt3

+1

Ajout d'un code pour le dessiner. Vous ne savez pas exactement ce que vous voulez dire par "le point un de ces chemins vers l'heure actuelle"? Si c'est l'effet de surbrillance vu dans la capture d'écran de votre question, tout ce que vous avez à faire est de changer la couleur de votre Paint lorsque vous dessinez celle qui correspond à l'heure actuelle. Si vous ne voulez que sur l'heure actuelle, calculez simplement l'angle de cette heure, par ex. 6 heures serait 180 degrés, et faites pivoter la toile une fois en utilisant cette valeur. – TofferJ