2017-05-18 5 views
0

Androidの表示フレームレートにいくつかのコードアクティビティを同期させる方法を探しています。これは短い表示領域の色を設定するだけのコードです。この目的のために悪用できる方法やフックがありますか?Androidフレームレートに同期する方法

非常に高速なインターバルで実行されるタイマーを使用することはできますが、レンダリングにフレームレートのエイリアシングが発生しているようです。たとえば、フレームレートが60Hzなので、タイマー間隔を1/60秒に設定すると、外観が一様ではありません。私は正確に16.666ミリ秒にタイマーを設定することはできませんし、私ができる場合でも、私はまだ別名を参照してください。

ありがとうございました。

答えて

0

いくつかの検索と実験の後で、1つの解決策は、フレームレートにコールバック関数をフックする方法を提供するChoreographerクラスを使用することです。以下はコードです。私はそれが遅い携帯電話で怠惰なタイミングを示すことがわかった。最近のモデルのサムスンの携帯電話のパフォーマンスが向上

private FrameCallback frameCallback = null; 
private boolean frameCallbackPending = false; 

public void armVSyncHandler() { 
    if(!frameCallbackPending) { 
     frameCallbackPending = true; 
     if(frameCallback == null) 
     { 
      frameCallback = new FrameCallback() { 
       @Override 
       public void doFrame(long frameTimeNanos) { 
        frameCallbackPending = false; 

        // Do some work here 

        armVSyncHandler(); 
       } 
      }; 
     } 
     Choreographer.getInstance().postFrameCallback(frameCallback); 
    } 
} 
関連する問題