例如,如果我将TextView的ellipsize
值设置为"marquee"
,将marqueeRepeatLimit
值设置为"1"
(为了在TextView上滚动一段长文本),有没有办法检测选框动画何时完成?
(事实上,我有一个字符串队列,它被动态添加,我想拉出并一次显示其中一个字符串。一个字符串可以比TextView的宽度长,所以我想在我展示下一个之前滚动它。)
编辑:如果使用TextView的选框属性无法做到这一点,那么任何人都知道如何将动画添加到模拟选框动画的TextView中?
答案 0 :(得分:1)
而不是选框只需在文本上尝试简单的动画,您可以在其中定义文本应移动的样式,速度和方向。
您可以设置动画完成后显示的结果使用“setFillAfter()”方法(显示您案例中的默认文本)。
答案 1 :(得分:0)
据我所知,无法检测到选框动画何时完成,即使我在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" />
...并且经常使用Timer调用myTextSwitcher.setText("text to show next")
方法。不理想,但我能想到的最好!