数値指定は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に変換。
よくわかってないけど、これでうまくいくっぽいで!