我正在为计时器编写自定义视图,但我无法为中间的数字获得正确的固定宽度字体。这是相关代码(来自两种不同的方法):
mTextPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG);
mTextPaint.setTypeface(Typeface.create(Typeface.MONOSPACE, Typeface.NORMAL));
// Get rectangle that is the size of the text
mTextPaint.getTextBounds(
getTimeText(),
0,
getTimeText().length(),
mTextBounds);
// X and Y coordinates of text
float mTextPosX = (width / 2) - (mTextBounds.width() / 2);
float mTextPosY = (height / 2) + (mTextBounds.height() / 2);
// Draw text
canvas.drawText(
getTimeText(),
mTextPosX,
mTextPosY,
mTextPaint);
这似乎工作正常,但是每当其中一个数字变为 1 时,该 1 占用的空间就会减少,并且整个文本块会移动一点。这显然不应该发生,因为我使用的是等宽字体。谁能阐明我如何解决这个问题?