gpt4 book ai didi

Android逐字符显示文字动画

转载 作者:IT王子 更新时间:2023-10-29 00:07:33 26 4
gpt4 key购买 nike

任何人都知道执行动画的任何有效方法就是逐个字符地显示文本吗?喜欢:

T
Th
Thi
This
This i
This is
...

等等。

谢谢!

最佳答案

这可能不是最优雅的解决方案,但最简单的可能是 TextView 的快速子类,它带有一个 Handler,它会不时更新文本,直到完成序列显示:

public class Typewriter extends TextView {

private CharSequence mText;
private int mIndex;
private long mDelay = 500; //Default 500ms delay


public Typewriter(Context context) {
super(context);
}

public Typewriter(Context context, AttributeSet attrs) {
super(context, attrs);
}

private Handler mHandler = new Handler();
private Runnable characterAdder = new Runnable() {
@Override
public void run() {
setText(mText.subSequence(0, mIndex++));
if(mIndex <= mText.length()) {
mHandler.postDelayed(characterAdder, mDelay);
}
}
};

public void animateText(CharSequence text) {
mText = text;
mIndex = 0;

setText("");
mHandler.removeCallbacks(characterAdder);
mHandler.postDelayed(characterAdder, mDelay);
}

public void setCharacterDelay(long millis) {
mDelay = millis;
}
}

然后你可以像这样在 Activity 中使用它:

public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Typewriter writer = new Typewriter(this);
setContentView(writer);

//Add a character every 150ms
writer.setCharacterDelay(150);
writer.animateText("Sample String");
}
}

如果您想要添加每个字母的动画效果,也许可以查看子类 TextSwitcher

希望有帮助!

关于Android逐字符显示文字动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6700374/

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