4

私の Android アプリは Open GL ES 2.0 アプリです。ある特定のシーンでは、GL Surfaceview の上にいくつかの textView を、いくつかの OpenGL テクスチャ クワッドと共にオーバーレイしています。

「フラッシュ」するには、textViews の 1 つが必要です。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) は 1 秒間に 60 回呼び出されます。タイマーは 250 ミリ秒に設定されているため、「点滅」アニメーションが 1 秒間に 4 回、または 1 秒間に 4 回、runOnUiThread を介して FlashText が呼び出されます。

これ機能しますが、openGL オブジェクトのアニメーションに十分な影響を及ぼし、問題が発生します。

私の質問は、これを行うためのより良い方法はありますか? (私が使用している方法は明らかに十分に効率的ではないため)。

4

0 に答える 0