可以检测TextView的选框动画何时完成?

时间:2012-01-25 16:29:08

标签: android android-layout textview android-view

例如,如果我将TextView的ellipsize值设置为"marquee",将marqueeRepeatLimit值设置为"1"(为了在TextView上滚动一段长文本),有没有办法检测选框动画何时完成?

(事实上,我有一个字符串队列,它被动态添加,我想拉出并一次显示其中一个字符串。一个字符串可以比TextView的宽度长,所以我想在我展示下一个之前滚动它。)

  

编辑:如果使用TextView的选框属性无法做到这一点,那么任何人都知道如何将动画添加到模拟选框动画的TextView中?

2 个答案:

答案 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")方法。不理想,但我能想到的最好!