2
我想要做以下事情: 我給我的應用程序中的全局函數提供一個字符串,此函數打開一個看起來像對話泡泡的FrameLayout。這一個包括一個字符串的TextView。 迄今爲止工作得很好 - 但我希望它看起來像一個「現場演講」。所以文本不應該只出現在x毫秒後的每個字符中。像:
^ h
他
赫爾
地獄
(等)Android Java:.setText()每x毫秒
你有任何想法? 謝謝!
我想要做以下事情: 我給我的應用程序中的全局函數提供一個字符串,此函數打開一個看起來像對話泡泡的FrameLayout。這一個包括一個字符串的TextView。 迄今爲止工作得很好 - 但我希望它看起來像一個「現場演講」。所以文本不應該只出現在x毫秒後的每個字符中。像:
^ h
他
赫爾
地獄
(等)Android Java:.setText()每x毫秒
你有任何想法? 謝謝!
我寫延伸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();
哇,謝謝!按原樣工作。 –
分割字符串成字符,追加每char在一些秒.. – sanbhat