アプリを複数の画面サイズで実行できるようにしたいのですが、さまざまな描画可能フォルダー内にテキスト サイズの値を保存して、画面サイズに基づいてテキストが収まるようにしたいと考えていました。または、この問題に対するより良い方法はありますか?
例: drawable-hdpi << textsize == 50
drawable-mdpi << テキストサイズ == 25
drawable-ldpi << テキストサイズ == 10
dp
最も簡単な方法は、テキスト サイズを(密度に依存しないピクセル) またはsp
(スケーリングされたピクセル)で定義することです。
そうすることで、Android は次の計算を使用して密度を自動的に考慮します。
したがって、テキストを として定義するとします12dp
。中密度デバイスでは 12 ピクセル、高密度デバイスでは 18 ピクセルなどになります。
alextsc メモのように、テキスト サイズの場合、sp
ICS で追加されたフォント サイズのユーザー設定が考慮されるため、ユニットに使用するのが最適です。Android の下位バージョンでsp
は、単にdp
.
@wsanville による答えは、同じ外観が必要で、正しいスケーリングが必要な場合は正しかったのですが、何らかの理由で完全に異なるサイズが必要な場合です。たとえば、スマートフォンとは異なるレイアウトをタブレットで使用していて、1 つはヘッダー、もう 1 つはサブヘッダーにしたいとします。次に、別の dimen フォルダーを定義することをお勧めします。
- values/dimens.xml
<dimen name="textSize">16sp</dimen>
- values-large/dimens.xml
<dimen name="textSize">32sp</dimen>
- values-xlarge/dimens.xml
<dimen name="textSize">32sp</dimen>
上記の例では、スマートフォンでは小さく、タブレットでは大きく表示されます。