java - Android Java : . setText() 每 x 毫秒

标签 java android delay settext

我想做以下事情: 我向应用程序中的全局函数提供一个字符串,该函数打开一个看起来像气泡的 FrameLayout。这包括一个字符串的 TextView。 到目前为止效果很好 - 但我希望它看起来像“现场演讲”。因此,文本不应该只出现,而应该出现 x 毫秒后的每个字符。喜欢:
H

赫尔
hell
(等)

你对此有什么想法吗? 谢谢!

最佳答案

我编写了一个扩展 AsyncTask 的类,作为如何执行此操作的快速示例:

public class TyperTask extends AsyncTask<Void, String, Void> {
    TextView mTextView;
    String mMessage;
    int mTypingDelay;

    TyperTask(TextView textView, String message, int typingDelay) {
        this.mTextView = textView;
        this.mMessage = message;
        this.mTypingDelay = typingDelay;
    }

    @Override
    protected Void doInBackground(Void... params) {
        for (int i = 0; i < mMessage.length(); i++) {
            publishProgress(String.valueOf(mMessage.charAt(i)));
            try {
                Thread.sleep(mTypingDelay);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

    @Override
    protected void onProgressUpdate(String... typedChar) {
        mTextView.append(typedChar[0]);
    }

}

使用方法如下:

TextView myTextView = (TextView) findViewById(R.id.myTextView);
new TyperTask(myTextView, "This is a test message.", 100).execute();

关于java - Android Java : . setText() 每 x 毫秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16670324/

相关文章:

带有延迟的javascript循环标签

Javascript getElementById 在结束循环之前显示隐藏的 div

java - 通过 Java GUI 将数据插入表

java - 无法从 Main 内部的嵌套循环更新 Main 中的数组。我该如何分配它的值?

android - 删除 Android fragment 中回收器 View 上方不需要的空白区域

android - 版本冲突更新为Play-Services 9.4.0 Android Studio 2.2

jquery - 按 data-rel 顺序应用相同的函数

java - Scala:查找不以特定字符串结尾的最大字符串的正则表达式

java - mongo中的原子读取和删除

android - 直接实例化 ViewModel,不使用 ViewModelProviders.of 方法