Bonjour,
Je souhaiterais effectuer une translation sur un textview comprenant plusieurs mots et cette translation (horizontale) aurait à translater en X de la taille d'un mot donné.
Exemple :
monTextView comprend : "aaa iii abcdef ...."
j'aimerai que ma translation translate en X la première fois de la taille de "aaa", la deuxième fois de la tialle de "iii", etc...
j'ai essayé ce bout de code :
sachant que fromXDelta_save est une sauvegarde de la nouvelle position de la translation (afin qu'elle ne se remette pas à 0 au prochaine lancement)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 private void slideListeMots(String str) { float fromXDelta = fromXDelta_save; float toXDelta = fromXDelta_save + str.length() * monTextView.getTextSize() * -1; float fromYDelta = 0.0f; float toYDelta = 0.0f; fromXDelta_save = toXDelta; //parametre de la translation translate = new TranslateAnimation(fromXDelta, toXDelta, fromYDelta, toYDelta); translate.setDuration(1000); translate.setFillAfter(true); //permet que l'animation reste à son état de fin et ne se reset pas monTextView.setAnimation(translate); }
Bon enfait mon soucis est que je récupère bien la taille en px des caractères de mo textView etc.. mais le problème est que
me donne la même taille pour "iii" et "aaa".
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 str.length() * monTextView.getTextSize()
Or la chaine "iii" est plus petite que la chaine "aaa" (due à la taille des caractère)...
Donc est-ce que quelqu'un aurait un moyen de connaitre exactement la taille qu'il me faudrait translate en X ??
Merci
Partager