Android小ネタ

FontMetricsで取得できるパラメータ類はgetFontMetrics()した時の値を返すので、後で文字サイズを変更すると正しい値が取得できないらしい。

以下のコードだと文字サイズが20の場合のパラメータが返ってくる。

Paint textPaint = new Paint();
textPaint.setTextSize(20);
FontMetrics fontMetrics = textPaint.getFontMetrics();
textPaint.setTextSize(100);
Log.d("Font", fontMetrics.descent + "" + fontMetrics.ascent);

文字サイズを変更した場合は再度、getFontMetrics()する必要があるみたい。