Simple Android Défilement De Texte Défilant
Je veux créer un défilement de texte défilant pour une simple application pour android.
J'ai une grande liste de citations stockées dans un tableau, et je voudrais au hasard remplir mon ticker avec le devis: un devis fait défiler tout le chemin à travers, puis un autre est choisi au hasard et fait défiler son chemin à travers, et ainsi de suite.
Le chrono devrait souffler le long indépendamment de ce qui s'est concentré sur ou planait au-dessus des...
1) Comment puis-je créer un texte défilant à ces fins?
2) Comment dois-je remplir le ticker avec un flux régulier de citations aléatoires sélectionnés à partir de mon tableau?
Grâce
OriginalL'auteur Rob | 2011-10-12
Vous devez vous connecter pour publier un commentaire.
Si je suis comprendre ce que vous essayez de le faire correctement, vous voulez regarder la
ellipsize
etmarqueeRepeatLimit
propriétés deTextView
.Via l'API:
http://developer.android.com/reference/android/widget/TextView.html#attr_android:ellipsize
http://developer.android.com/reference/android/widget/TextView.html#attr_android:marqueeRepeatLimit
Aussi, regardez cette question pour une mise en œuvre. À partir de ce que je me souviens quand j'ai eu à mettre en place quelque chose comme cela, c'est que les propriétés de XML peut être délicat. Ils interfèrent les uns avec les autres et empêcher le texte de défilement sur l'écran de sorte qu'il peut prendre un certain jongle avec.
À partir de là, le remplissant avec les différentes citations est aussi simple que d'appeler
setText()
sur leTextView
avec la citation aléatoire que je suppose que vous aurez stockées dans un tableau ou une base de données au bon moment.Comment beaucoup de citations sont là? Si ce n'est pas de trop, de créer une chaîne à l'avance. Au hasard tirer toutes les citations de votre tableau et de les compiler dans une chaîne de grande taille et le définir comme le texte dans le TextView.
plus de 1000 citations, il ne sera pas pratique d'utiliser une seule chaîne.
Vous aurez besoin de faire preuve de créativité alors. Possible, mais en désordre, la solution peut-être pour obtenir la largeur de la TextView, la longueur de la chaîne (vous aurez besoin d'utiliser une police à espacement fixe), et la vitesse de défilement de la TextView (c'est constant, mais vous aurez besoin de déterminer expérimentalement la vitesse). L'utiliser pour calculer le temps. Puis à utiliser des minuteries ou de dormir dans un thread distinct pour le temps calculé, puis changer la chaîne. Je ne sais pas si ce serait même travail, mais il pourrait être un bon endroit pour commencer. Il pourrait y avoir quelque chose dans l'API qui permettrait de contourner tout cela, mais je suis ignorant.
Voir developer.android.com/reference/android/view/... pour la largeur de Vue. Si la Vue est
MATCH_PARENT
ouWRAP_CONTENT
vous aurez besoin pour obtenir la Vue parent et vérifier la largeur. C'est, malheureusement, très ennuyeux très rapidement. Il doit y avoir une meilleure solution.OriginalL'auteur shanet