0
tv.setTextSize(14);

TextView のフォント サイズを 14sp に設定しました。Nexus One でアプリを実行すると、フォント サイズは問題ありません。しかし、Nexus 7 で実行すると、フォント サイズが非常に小さくなります。これは、Android が密度に応じてフォント サイズをスケーリングするためです。Nexus 7 の密度は Nexus One よりも低く、Android ではフォント サイズが縮小されています。画面サイズに比例してフォントサイズを調整するにはどうすればよいですか?

4

3 に答える 3

3

XML リソースを使用します。XML リソース ファイル (通常は「dimens.xml」と呼んでいます) で、次のようなディメンション リソースを定義しますfont_size。「values-normal」および「values-large」フォルダーに「dimens.xml」ファイルを作成します。「values」のフォント サイズがデフォルトで使用されますが、大画面 (Nexus 7 など) では「values-large」のサイズが使用されます。10 インチ タブレットを明示的にサポートする場合は、「values-xlarge」で定義することもできます。

textSize="@dimen/font_size"サイズの設定は、XML で、および を使用してコードから行うことができますtv.setTextSize(getResources().getDimension(R.dimen.font_size))

dimens.xml ファイルは次のようになります。

<resources>
   <dimen name="font_size">14sp</dimen>
</resources>
于 2012-11-15T17:38:09.433 に答える
1

dimens.xml アプローチを使用し、フォルダー内の電話とタブレット用に異なるバージョンを生成すると、より良い結果が得られます。

res/values/dimens.xml -> デフォルトのサイズ

res/values-normal/dimens.xml -> 電話のサイズについて

res/values-large/dimens.xml -> タブレット サイズの場合 (font-size、may paddings などに大きな値を設定してください...

于 2012-11-15T17:41:25.993 に答える
0

から設定できます。dimes.xml

で寸法を定義しdimens.xmlます。例えば:

<dimen name="my_text_size">14sp</dimen>

そして、それをコードで使用します。

tv.setTextSize(getResources().getDimension(R.dimen.my_text_size));
于 2012-11-15T17:34:29.490 に答える