« Android1日セミナー無事、終了しました。 | メイン | 『アンドロイダー』に紹介して頂きました。 »

2011年06月11日

getTextSizeとsetTextSizeのデフォルト単位は違うらしい。。

TextViewの文字サイズを取得して拡大縮小しようと思ったのですが
全然うまくいきません。試しに、

float size = textView.getTextSize();
textView.setTextSize(size);

と同じ値を入れてるだけなのにどんどん文字が大きくなり、
なんで!?と思って調べると、、、

getTextSizeは取得結果がピクセル単位、
setTextSizeでセットするときの値はデフォルトがSP単位
でした。

対処としては、
setTextSizeに単位を設定する引数を追加すればOKでした。
こんな感じです。
float size = textView.getTextSize();
textView.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);

TypedValue.COMPLEX_UNIT_PX ・・・ピクセル単位
TypedValue.COMPLEX_UNIT_SP ・・・SP単位
TypedValue.COMPLEX_UNIT_DIP ・・・DIP単位


投稿者 miyaware : 2011年06月11日 09:08

コメント