如何在Android中逐字逐句淡出textview

时间:2014-08-14 09:35:00

标签: android animation textview fade

我试图逐字逐句地在textview上做一个淡入淡出的动画但是当我用视图动画做它时,它会在整个文本视图中淡出。

我尝试将视图动画与处理程序结合起来,以便在出现字母但我没有得到我想要的结果时。这是我试过的代码。 xml文件

<set xmlns:android="http://schemas.android.com/apk/res/android">
<alpha 
    android:fromAlpha="0.0"
    android:toAlpha="1.0"
    android:interpolator="@android:anim/linear_interpolator"
    android:duration="3000"
    android:fillBefore="true"
    android:zAdjustment="bottom"/>

java代码

public class TextViewAnimator {
private TextView textView;
private CharSequence text;
private long delay;
private int index;
private Handler timerHandler = new Handler();
private Runnable animationTask = new Runnable() {
    @Override
    public void run() {
        textView.setText(text.subSequence(0, index++));
        if (index <= text.length()) {
            timerHandler.postDelayed(animationTask, delay);
        }
    }
};

public static TextViewAnimator newInstance(TextView textView,
        CharSequence text, long delay) {
    TextViewAnimator instance = new TextViewAnimator();
    instance.textView = textView;
    instance.text = text;
    instance.delay = delay;
    return instance;
}

public void start() {
    textView.setText("");
    timerHandler.postDelayed(animationTask, delay);
}

}

还有另一种逐字逐渐消失的方法吗?

1 个答案:

答案 0 :(得分:1)

我想这太晚了,但仍然可以帮助别人。 我也需要这样的东西但是找不到令人满意的解决方案,决定制作一个自己的自定义视图,然后将其转换为库。尝试[淡入文本视图] [1]。它用一个漂亮的淡入动画逐个字母地设置文本。

<强>用法

在XML布局中

    <believe.cht.fadeintextview.TextView
        android:id="@+id/textView"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:textSize="30sp"
        android:textColor="@android:color/black"

        app:letterDuration="250"/>

在活动/片段中

believe.cht.fadeintextview.TextView textView = (believe.cht.fadeintextview.TextView) findViewById(R.id.textView);

textView.setLetterDuration(250); // sets letter duration programmatically
textView.isAnimating(); // returns current animation state (boolean)
textView.setText(); // sets the text with animation