数値指定はXMLからでもJavaからでも共通化したいよね!って話で。
結構勘違いしまくってたのでめもめも。
まずは res/values/dimens.xml に数値を指定
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="text_size">14sp</dimen>
</resources>
テキストサイズを指定するときは「sp」を使います。
どんな解像度の端末でも大丈夫だとかなんとか、
画像やレイアウトのサイズは「dp」とか「dip」。
これをレイアウトのXMLで使用する場合はこちら
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<!-- dimens.xmlからひっぱって指定 -->
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="@dimen/text_size" />
<!-- 数値で指定 -->
<TextView
android:id="@+id/text_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="14sp" />
</LinearLayout>
一応、数値で指定する場合も追加。
どっちも同じ結果になるはず。
最後にJavaから指定する方法
TextView tv = new TextView(this); // dimens.xmlからひっぱって指定 tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, getResources().getDimension(R.dimen.text_size)); // 数値で指定 tv.titleTV.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14);
ちょっとややこしいけど、下の方は数値をSPにして表示。
上のdimensな方はpxに変換。
よくわかってないけど、これでうまくいくっぽいで!