gpt4 book ai didi

android - 如何在 Android 中逐个字母淡入 TextView

转载 作者:行者123 更新时间:2023-11-29 01:39:57 25 4
gpt4 key购买 nike

我正在尝试逐个字母地在 textview 上做动画淡入淡出,但是当我用 View 动画做它时,它会在整个 textview 中淡入淡出。

我尝试将 View 动画与一个处理程序结合起来,以处理字母出现时的情况,但我没有得到我想要的结果。这是我试过的代码。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);
}

还有其他方法可以逐个字母淡入淡出吗?

最佳答案

我想这为时已晚,但仍可能对某些人有所帮助。我也需要这样的东西,但无处找到令人满意的解决方案,决定制作自己的自定义 View ,然后将其转换为库。试试 [Fade-In TextView][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"/>

在 Activity/fragment 中

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

关于android - 如何在 Android 中逐个字母淡入 TextView ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25304768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com