タイマー用のカスタム ビューを作成していますが、中央の数字に適切な固定幅フォントを取得できません。関連するコードは次のとおりです(2つの異なる方法から):
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 に変わるたびに、その 1 が占有するスペースが少なくなり、テキストのチャンク全体が少し移動します。私は等幅フォントを使用しているため、これは明らかに発生すべきではありません。これを修正する方法について誰かが光を当てることができますか?