アフィリエイト広告を利用しています
最新記事
日別アーカイブ

広告

posted by fanblog

2012年09月24日

Canvas で文字の大きさを測る

Canvas の中で文字を描画するとき、大きさを取得しなければなりませんが、
大きさを取得する方法について書きます。

Canvas の場合は、Graphics で記述することになります。
drawString を使用します。

この際に、たとえば枠でくくるような機能が欲しい場合に、
文字列の大きさを把握する必要があります。

これを、以下のようにして取得しています。

final String s = "あいうえお";
Graphics g = canvas.getGraphics();
Font f = Font.getDefaultFont();

int width = f.getBBoxWidth(s);
int height = f.getBBoxHeight(s);

int top = 10;
int left = 10;

g.drawRect(left, top, width, height);
g.drawString(s, left, top + f.getAscent());

本来は枠に隙間を入れたりして調整しますが、だいたい上記のようなコードを入れています。
枠自体の取得は簡単ですが、文字列を表示するときに、縦座標で getAscent の結果を
考慮に入れておかないと、ずれることになるので注意が必要です。
getAscent は、フォントのベースラインの高さです。文字列を描くときの基準座標になりますが、他の描画と合わせる際はベースライン分も入れておきましょう。


{a8.net http://books.livedoor.com/item/1062223}
posted by FJT at 06:13| DoJa
プロフィール
FJTさんの画像
FJT
使えそうな技術情報を掲載しています。 ぜひ、役立ててください。
プロフィール
リンク集
×

この広告は30日以上新しい記事の更新がないブログに表示されております。