我的Android应用程序是Open GL ES 2.0应用程序。对于一个特定场景,我在GL Surfaceview上覆盖了一些textView,以及一些OpenGL纹理四边形。
我需要我的一个textViews'flash' - 我的目标是Gingerbread,因此,我不能使用动画,所以我创建了一个方法来执行此操作:
public void flashText(){
if(myText.getVisibility()==View.VISIBLE)
myText.setVisibility(View.GONE);
else
myText.setVisibility(View.VISIBLE);
}
然后,从我的OpenGL线程中,我执行以下操作:
void updateLogic(
if (System.currentTimeMillis()>(flashTimer+250)){
flashTimer=System.currentTimeMillis();
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
activity.flashText();
}
});
}
}
上述方法(updateLogic)每秒调用60次。计时器设置为250毫秒,所以我每秒钟获得4次“闪烁”动画,或者每秒4次,通过runOnUiThread调用FlashText。
这个 工作,但是,它会影响我的openGL对象的动画,足以让它成为一个问题。
我的问题是,有更好的方法吗? (因为我使用的方法显然效率不高)。