If I set a TextView’s ellipsize value to "marquee" and the marqueeRepeatLimit value to "1" for example (in order to roll a long text across a TextView once), is there any way to detect when the marquee animation has completed?
(Thing is, I have a queue of Strings which is being added to dynamically and I want to pull out and show one of these Strings at a time. A String can be longer than the width of the TextView so I want to roll it across before I show the next one.)
Edit: If it’s not possible to do this by using TextView’s marquee properties, anyone know how can I add an Animation to a TextView which simulates a marquee animation?
As far as I can tell, it’s not possible to detect when a marquee animation completes and even if I replicated the marquee animation using a translate animation on the TextView, it wouldn’t be straightforward to set the duration of the animation the right length of time according to the text in the TextView. So! What I’m doing now instead is using a TextSwitcher as follows…
… and calling the
myTextSwitcher.setText("text to show next")method every so often using a Timer. Not ideal but the best I could come up with!