4

我的 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 对象的动画,足以成为一个问题。

我的问题是,有没有更好的方法来做到这一点?(因为我使用的方法显然不够有效)。

4

0 回答 0