android - 如何在Android游戏循环中快速格式化 float ?

标签 android string formatting string-formatting

我想在游戏中显示毫秒计时器值。

String.format 在 Android 上非常慢,所以我不能使用它。我目前使用 这个:

long elapsedMillis = ...; //elapsed milliseconds
int whole = (int)(elapsedMillis / 1000);
int fraction = (int)(elapsedMillis % 1000);
StringBuilder sb = new StringBuilder("TIME:");
sb.append(whole);
sb.append('.');
if(fraction < 10)
sb.append("00");
else if(fraction < 100)
sb.append("0");
sb.append(fraction);
g.drawText(sb.toString(), ...);

但我认为它可以更快地完成。你能指导我正确的方向吗?谢谢


related question

最佳答案

一些想法:

  • 使用大容量初始化的静态StringBuilder
  • 使用原生函数
  • 预先绘制“时间:”(我假设它不会移动)
  • 保持以毫秒为单位的时间值

关于android - 如何在Android游戏循环中快速格式化 float ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4458635/

相关文章:

使用 Groovy 进行字符串连接

ios - iOS 推送通知中的 header (粗体)和正文

ios - 如何使用 Swift 4 将字符串拆分为英语和非英语?

c - Strstr 返回 NULL

python - 对 Excel 中的整行应用条件格式

c - 使用 Scanf() 读取特定字符串

Android:查询多个类的ParseQueryAdapter

java - 序列化循环对象树 - StackOverflowError - 需要自定义序列化代码

Android (Kotlin) - 如何等待异步任务完成?

android - Crashlytics 崩溃报告提到了 XposedBridge