文章目录
实时FPS
初始化
choreographer = Choreographer.getInstance();
lastFrameTimeNanos = System.nanoTime();
choreographer.postFrameCallback(frameCallback);
监听并显示
Choreographer.FrameCallback frameCallback = new Choreographer.FrameCallback() {
@Override
public void doFrame(long frameTimeNanos) {
choreographer.postFrameCallback(this);
long now = System.currentTimeMillis();
long diff = frameTimeNanos - lastFrameTimeNanos;
if (diff > 0) {
fps = 1e9 / diff;
lastFrameTimeNanos = frameTimeNanos;
// 每秒刷新一次
if (now - longFpsTime > 1000){
// 更新UI
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
tvFps.setText(String.format("FPS: %.2f", fps));
}
});
longFpsTime = now;
}
}
}
};