縦向きと横向きの両方のフォント サイズを定義するディレクトリを使用することをお勧めします。例えば:
values/dimen.xml
values-land/dimen.xml
各 dimen.xml ファイルで、ボタンのフォント サイズを定義します。
values/dimen.xml:
<dimen name="button_fontSize">12sp</dimen>
values-land/dimen.xml
<dimen name="button_fontSize">24sp</dimen>
アクティビティが起動されるか、デバイスが回転されると、xml レイアウトは現在の向きに適したフォント サイズを取得します。
編集:電卓の表示をキャプチャするために を使用したことに応じて、android:configChanges
実装が簡単でコーディングを簡素化できる代替手段を提供したいと思います。
以下の例では、計算画面がTextView
名前付きのcalcDisplay
.
protected void onSaveInstanceState(Bundle outState) {
// Save the calculator display text.
outState.putString("displayText", calcDisplay.getText());
}
protected void onCreate(Bundle savedInstanceState) {
// ...
// Restore the calculator display text.
if (savedInstanceState != null) {
String displayText = savedInstanceState.getString("displayText");
calcDisplay.setText(displayText);
}
}
このコードを使用すると、デバイスは回転時に計算機の表示テキストを自動的に復元するだけでなく、アクティビティが破棄されて再作成されるため、必要なフォント サイズも読み込まれます。