我的 Android 应用程序是一个 Open GL ES 2.0 应用程序。对于一个特定的场景,我在我的 GL Surfaceview 顶部覆盖了一些 textView 以及一些 OpenGL 纹理四边形。
我需要我的一个 textView 来“闪烁” - 我的目标是 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 次,FlashText 是通过 runOnUiThread 调用的。
这确实有效,但是,它影响了我的 openGL 对象的动画,足以成为一个问题。
我的问题是,有没有更好的方法来做到这一点?(因为我使用的方法显然不够有效)。