私の 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 オブジェクトのアニメーションに十分な影響を及ぼし、問題が発生します。
私の質問は、これを行うためのより良い方法はありますか? (私が使用している方法は明らかに十分に効率的ではないため)。