例如,如果我将TextView的ellipsize
值设置为"marquee"
,将marqueeRepeatLimit
值设置为"1"
(为了在TextView上滚动一次长文本),有什么方法可以检测字幕动画何时完成吗?
(问题是,我有一个正在动态添加的字符串队列,我想一次拉出并显示其中一个字符串。一个字符串可能比TextView的宽度长,所以我想在显示下一个字符串之前滚动它。)
编辑:如果使用TextView的字幕属性无法做到这一点,有人知道我如何将动画添加到模拟字幕动画的TextView中吗?
您可以定义文本应该以何种样式移动,以何种速度和方向移动,而不是在文本上尝试简单的动画
您可以使用"setFillAfter()"方法将结果设置为在动画完成后显示(在您的情况下显示默认文本)。
据我所知,不可能检测到字幕动画何时完成,即使我在TextView上使用翻译动画复制了字幕动画,也无法根据TextView中的文本将动画的持续时间设置为正确的时间长度。所以我现在所做的是使用如下的TextSwitcher。。。
<TextSwitcher
android:id="@+id/myTextSwitcher"
...
android:inAnimation="@anim/fade_in_slow"
android:outAnimation="@anim/fade_out_slow" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true" />
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:singleLine="true"
android:ellipsize="marquee"
android:marqueeRepeatLimit="marquee_forever"
android:focusable="true"
android:focusableInTouchMode="true" />
并且每隔一段时间使用定时器来调用CCD_ 5方法。不理想,但我能想到的最好的!