酢ろぐ!

カレーが嫌いなスマートフォンアプリプログラマのブログ。

Androidで テキストを縦方向の中央揃えで描画できない

縦方向の中央揃えでテキストを描画できない

期待する動作。

f:id:ch3cooh393:20200630183325p:plain

現実。尻尾(descent)の分だけ下方向にズレてします。

f:id:ch3cooh393:20200630183322p:plain

問題点

paint.getTextBoundsで、文字の高さは取得できる…

f:id:ch3cooh393:20200630183154p:plain

取得した高さを使って、描画領域を求めることはできる。

f:id:ch3cooh393:20200630183124p:plain

しかし、drawTextで描画すると、ベースラインで描画されるため、descent分だけ下にずれる。

f:id:ch3cooh393:20200630183136p:plain

やったこと

descent分だけずらす

fontMetrics を取得して descent分だけずらす。

f:id:ch3cooh393:20200630185121p:plain

でも尻尾がないテキストの時には上にズレてしまう…

f:id:ch3cooh393:20200630185125p:plain

参考記事