当前位置: 首页 > news >正文

【Android】轻松实现实时FPS功能

文章目录

    • 实时FPS


实时FPS

初始化

 		choreographer = Choreographer.getInstance();lastFrameTimeNanos = System.nanoTime();choreographer.postFrameCallback(frameCallback);

监听并显示

 Choreographer.FrameCallback frameCallback = new Choreographer.FrameCallback() {@Overridepublic 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){// 更新UIgetActivity().runOnUiThread(new Runnable() {@Overridepublic void run() {tvFps.setText(String.format("FPS: %.2f", fps));}});longFpsTime = now;}}}};

相关文章:

  • 开源协议全解析:类型、选择与法律风险规避指南
  • Qwen3本地化部署,准备工作:SGLang
  • UDP报文结构
  • 跨境电商生死劫:IP筛查三法则破解封号魔咒
  • Hadoop 集群基础指令指南
  • 某大麦某眼手机端-抢票
  • 制作一款打飞机游戏37:调度器预览
  • 63. Java 类和对象 - static 关键字
  • BBR 的 RTT 公平性问题求解
  • 高质量水火焰无损音效包
  • 如何安全的计算两个3D向量的夹角?
  • 从实列中学习linux shell6: 写一个 shell 脚本 过滤 恶意ip 攻击
  • 基于Docker Compose的Prometheus监控系统一键部署方案
  • Kafka的Topic分区数如何合理设置?
  • 【数据链路层】网络通信的“桥梁建设者”
  • ComputeShader绘制全屏纯色纹理
  • 【C到Java的深度跃迁:从指针到对象,从过程到生态】第五模块·生态征服篇 —— 第十八章 JVM调优:内存管理的权力游戏
  • 【25软考网工】第四章(4)无线局域网WLAN安全技术、无线个人网WPAN
  • 泰迪杯特等奖案例学习资料:基于多模态数据融合与边缘计算的工业设备健康监测与预测性维护系统
  • 搜索时如何排除一些垃圾站点,比如csdn.net
  • 停电催生商机,中国品牌 “照亮” 西班牙
  • 美乌矿产协议签署被曝“临门一脚”时生变,美方提附加条件
  • 平安资管总经理罗水权因个人工作原因辞职
  • 阿迪达斯一季度营收增近13%,称美国加征关税对业绩带来不确定性
  • 力箭二号火箭成功进行满载起竖试验,计划今年首飞发射轻舟飞船
  • 日本希望再次租借大熊猫,外交部:双方就相关合作保持密切沟通