我希望 TextView 中的文本逐个单词甚至逐个字母地显示,就像在大多数 rpgs 和带有文本框的冒险中一样。文本流应该是什么样子的一个很好的例子是游戏 phoenix wright ( http://youtu.be/2OOX2Gv0768?t=1m7s )
我到目前为止所尝试的是:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
String text = "test test test test";
String[] split = text.split(" ");
Deque<String> words = new LinkedList<String>();
for (int i = 0; i<split.length; i++)
{
words.addLast(split[i]);
}
showNextWord(words);
}
public void showNextWord(final Deque<String> words)
{
Handler handler = new Handler();
handler.postDelayed(new Runnable()
{
public void run()
{
TextView t = (TextView) findViewById(R.id.textBox);
t.append(words.pollFirst()+" ");
if (words.size()>0)
showNextWord(words);
}
}, 500);
}
我在模拟器上进行了测试,它似乎性能低下,如果我在显示每个字母后开始延迟,性能就更差了。延迟不一致。
除此之外,我希望有一个更优雅的解决方案。也许某种方式可以更灵活地处理延迟?例如,一个句子后更大的延迟等等。
非常感谢你!