AndroidのTextViewでsetTextSize(size)をした後にgetTextView()を実行すると値が違うという罠にハマる。
どういうことかというと、以下のコードで説明すると……。
例: (Java)
TextView textView = new TextView(context); textView.setTextSize(14.0f); // 14.0fを設定する Log.d(TAG, Float.toString(textView.getTextSize())); // 36.75が取得される
setTextSize(size)はSPで値を設定するのに対して、textView.getTextSize()はピクセルで値を返却するというオチ。
すごく分かりにくいよ...orz
SPのまま取得したければ、ピクセルの値とSPの値の変換処理を書けばOK!
setTextSize(unit, size)を使えば設定も取得もピクセル値で統一できますが、端末依存の影響をモロにウケるので全くオススメしません。