有谁知道为什么我在尝试将字符串格式的浮点值绘制在 Canvas 上时必须双重转义百分号 (%)?请参阅下面的相关代码行...
float mValue = .25F;
String percent = String.format(Locale.getDefault(), "%.0f%%%%", mValue * 100);
canvas.drawText(percent, 0, percent.length() - 1, posX, posY, mTextPaint);
这将在 View Canvas 上渲染25%
。如果我尝试以下字符串格式...
String percent = String.format(Locale.getDefault(), "%.0f%%", mValue * 100);
它将简单地渲染 25
而不带百分号。我在这里缺少什么明显的东西吗?
我在 API 级别 27 的模拟器上运行它,并使用 API 级别 28 进行编译
最佳答案
我最好的选择是 .drawText()
切断字符串中的最后一个字符。当我只是尝试格式化百分比时,它实际上在末尾有“%%”。
尝试使用下面不带字符串范围的代码来绘制全文,看看它是否会被截断。
canvas.drawText(percent, posX, posY, mTextPaint);
关于java - Canvas.drawText 中的双重转义百分号 (%),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53474091/