Tracer une ligne avec une certaine largeur de pixel
Je voudrais afficher des données X/Y sur une toile à l'aide de lignes, avec une certaine largeur (en pixels, ou "dp" dans l'idéal). J'ai essayé le setStrokeWidth(..) méthode de Peinture, et que, de fait, ne changer la largeur de la ligne, mais ce n'est pas ce dont j'ai besoin. Dans mon cas j'ai mis à l'échelle de ma toile "vraie les unités d'Ingénierie" en utilisant la matrice.preScale(xScale, yScale) si l'échelle en X représente 0 à 100, et les Y est de 0 à 1. Le setStrokeWidth() la méthode de la Peinture de l'objet semble fixer le trait de sorte qu'il suit ma matrice preScale() paramètres. En d'autres termes, les lignes horizontales sont dessinés très mince, et les lignes verticales sont tirés vraiment épais.
Est-il un moyen de configurer la Peinture, de sorte que peu importe dans quelle direction la ligne est tracée, sa largeur correspond au nombre de pixels?
J'ai essayé de définir un Drawable qui est une ligne, et de faire une ShapeDrawable, et ensuite l'appliquer à la Peinture, mais a couru dans une méchante classe les erreurs de conversion au moment de l'exécution. Cela m'a fait penser que ce n'était pas la voie à suivre à ce sujet. Mais peut-être que j'ai abandonné trop tôt.
Je comprends qu'un certain nombre d'Android traçage/packages graphiques disponibles, certaines avec de la source, mais je cherche vraiment à comprendre la plate-forme ici, plutôt que d'utiliser une solution tierce.
Merci pour tous les conseils!
Riche
source d'informationauteur Rich
Vous devez vous connecter pour publier un commentaire.
Par exemple sur Android : la peinture.setStrokeWidth(3); Cette méthode permet de définir la largeur de la ligne. Dans ce cas, la largeur de ligne est de 3 pixels. Je suis à la recherche tout comme cette méthode sur BlackBerry.
Essayez ceci :
Ils sont disponibles dans de net.jante.de l'appareil.l'api.l'interface utilisateur.Module graphique.
J'ai dû faire quelque chose de similaire lors de l'élaboration des superpositions sur une carte.
Que l'utilisateur peut utiliser le multi-touch à l'échelle de la carte de façon dynamique, quand je rentre le tirage au sort de la routine je calculer le facteur d'échelle pour les axes x et y, pour l'appliquer à la toile, de dessiner la carte, puis inverser ce facteur d'échelle et de l'appliquer à des largeurs de ligne pour les superpositions. Ainsi, la toile est mise à l'échelle et les superpositions sont mis à l'échelle, puis anti-mise à l'échelle, de sorte qu'ils sont en effet de largeur fixe.
J'ai trouvé cela fonctionne très bien avec pas de réel gain de performance.