您没有告诉我们您使用的是哪种图形库。
如果你想做类似闪烁的下划线的事情,有两种方法,一种可能非常糟糕,第二种可能更好。
第一个类似于(伪编码):
while(flashing){
textView.setText(textView.getText()+"_"); // I am assuming that you are using a text view, take this as pseudocode, you can do to whatever you want.
sleep(500); //that is half a second
textView.setText(textView.getText().substr(0,textView.getText().length()-1));
sleep(500);
}
第二个更好。我假设您正在使用诸如 OpenGL 之类的东西来绘制图形(如果我没记错的话,就像我的世界一样)。
私人长时间通过 = 0; public void draw(long delta){ timePassed += delta;
String t = textView.getText();
if(timepassed > blinkingSpeed){
timepassed = 0;
if("_".equals(t.substr(t.length()-1,t.length()))){
//The last char is the underscore, i remove it.
textView.setText(t.substr(0,t.length()-1));
}else{
//The last char isn't an underscore. I add it.
textView.setText(t + "_");
}
}
delta 是我们最后一次循环和实际时间之间的差异。所以当调用draw方法时你应该有这样的东西
//metod where draw is called
delta = Sys.getTimer() - lastTimerGotten;
lastTimerGotten = Sys.getTimer();
draw(delta);
//etc etc
显然每一帧渲染你都应该调用 draw(long delta) 方法。
我希望你明白我想向你解释什么。没有办法让你第一次写的东西起作用。