Hatena::ブログ(Diary)

明日の鍵

2011-10-05

Canvas#drawTextするときのメモ

どの値が何を表しているかよく忘れるのでメモ

原点

f:id:tomorrowkey:20111006002741p:image:w400

Canvas#drawText() に指定する座標はここになる。

f:id:tomorrowkey:20111006002740p:image:w400

文字の幅を取得するにはPaint#measureText(:String):floatを使う。

高さ

f:id:tomorrowkey:20111006002739p:image:w400

Top一番上
Ascent文字の上限
Leading原点のyと同じ位置
Descent文字の下限
Bottom一番下

文字のそれぞれのy位置が取得できる。

Paint#getFontMetrics()で取得できるFontMetrixから、フィールドの値を取り出せる。

bottom - topをすれば高さが取得できる。

値(追記)

Paint.setTextSize(:int)に96を設定した場合のそれぞれの値

leadingは必ず0になる

他はleadingからの相対的な位置の差

top-100.59375
ascent-89.109375
leading0.0
descent22.640625
bottom26.015625

調査に使用したソースコード

http://code.google.com/p/tomorrowkey/source/browse/#svn%2Ftrunk%2FFontMetrics