Android Toile Système De Coordonnées
Je suis en train d'essayer de trouver des informations sur la façon de changer le système de coordonnées de la toile. J'ai quelques données vectorielles j'aimerais faire une toile en utilisant des choses comme les cercles et les lignes, mais les données du système de coordonnées ne correspondent pas à la toile du système de coordonnées.
Est-il un moyen de la carte les unités que je suis à l'aide de l'écran des unités?
Je suis de dessin à une ImageView qui n'est pas de prendre la totalité de l'écran.
Si je dois faire mes propres calculs avant chaque dessin d'appel, comment puis-je trouver la largeur et la hauteur de mes ImageView?
La getWidth() et getHeight() appelle j'ai essayé semblent être de retour l'ensemble de la toile de la taille et pas de la taille de l'ImageView qui n'est pas utile.
Je vois de la matrice des trucs, c'est quelque chose qui va travailler pour moi?
J'ai essayé d'utiliser le "public void échelle(float sx, float sy)", mais qui fonctionne plus comme un pixel de niveau de zoom, plutôt que d'un vecteur à l'échelle de la fonction par l'expansion de chaque pixel. Cela signifie que si les dimensions afin de s'adapter à l'écran, l'épaisseur de la ligne est également augmenté.
Mise à jour:
Après quelques recherches, je commence à penser que il n'y a aucun moyen de coordonner les systèmes à autre chose. Je vais avoir besoin d'une carte toutes mes coordonnées à l'écran de pixel de coordonnées et de le faire en modifiant chaque vecteur. Le getWidth() et getHeight() semble fonctionner mieux pour moi maintenant. Je peux dire ce qui n'allait pas, mais je soupçonne que je ne peux pas utiliser ces méthodes à l'intérieur du constructeur.
OriginalL'auteur Mitch | 2010-05-28
Vous devez vous connecter pour publier un commentaire.
Merci pour la réponse. J'ai beaucoup donné sur l'obtention de ce travail dans le sens où je pense qu'il devrait. Bien sûr, je pense que les choses devraient se passer n'est pas la façon dont ils se produisent. 🙂
Voici en gros comment cela fonctionne, mais il semble être par un pixel, dans certains cas, et les cercles semblent être des sections manquantes lorsque les choses de la terre sur certaines des conditions limites, je n'ai pas encore de comprendre. Personnellement, je pense que c'est inacceptable d'être à l'intérieur de l'application du code et devrait être dans l'Android bibliothèques... clin d'oeil clin d'oeil, coup de pouce coup de pouce si vous travaillez pour le compte de Google. 🙂
OriginalL'auteur Mitch
Le seul moyen que je connaisse pour faire la coutume de graphiques vectoriels sur la mouche dans Android, est d'attirer tout dans un fichier image, puis placez-la dans un
ImageView
. Je ne suis pas sûr de comprendre exactement ce que vous demandez, mais si le seul problème est de mise à l'échelle, l'ImageView à l'échelle de quelle image il s'est donné à son propre taille à l'aide deandroid:scaleType="center"
comme une propriété de laImageView
.Jusqu'à changer le système de coordonnées, je doute que ce soit possible (bien que je n'ai pas étudié). Il pourrait être assez trivial pour écrire une fonction qui permettrait de votre carte de données du système à la norme Android système de coordonnées.
OriginalL'auteur Computerish
Vous pouvez mettre à l'échelle la toile coordonnées de vos propres unités à l'aide de la
preScale()
méthode de la toile' de la matrice. Sachez cependant que cet aussi des échelles de la Peinture est la largeur du trait, qui peut ne pas être ce que vous voulez.OriginalL'auteur Rich