9

私のレイアウト XML ファイルでは、dimens.xml.

たとえば、dimens.xml次のようなパラメータが含まれています。

<dimen name="textSize_normal">20dp</dimen>
<dimen name="buttonTextSize_normal">15dp</dimen>
<dimen name="editTextSize_normal">17dp</dimen>
<dimen name="buttonHeight_normal">37dp</dimen>
<dimen name="margin_normal">5dp</dimen>

main.xmlたとえば、私のでは、次のTextViewようにして のテキスト サイズを設定します。

android:textSize="@dimen/editTextSize_normal"

それはうまくいきます。

さて、私の質問は、メイン アクティビティからプログラムでファイル内のdimen変数の値を設定することは可能ですか? dimen.xml私がやろうとしているのは、画面サイズを取得し、たとえば、textSize画面の高さの一部に基づいて設定して、任意の画面サイズに簡単に適応できるようにすることです。dimen私はすべてを理解しました。私のコードで変数を設定する方法を理解するためにあなたの助けが必要です.

4

4 に答える 4

12

さて、私の質問は、メイン アクティビティからプログラムで dimen.xml ファイルの dimen 変数の値を設定することは可能ですか?

いいえ。

私がやろうとしているのは、画面サイズを取得し、たとえば、画面の高さの一部に基づいて textSize を設定して、任意の画面サイズに簡単に適応できるようにすることです。

これが奇妙な UI アプローチであることを無視して、それを行う方法は、Javaandroid:textSizeを使用して実行時に属性を削除し、テキスト サイズを変更することです。setTextSize()

コードで dimen 変数を設定する方法を理解するためにあなたの助けが必要です。

「dimen変数を設定」しません。のようなセッターを介して、計算をウィジェットに適用しますsetTextSize()

于 2012-08-18T15:13:15.400 に答える
7

いいえ、実行時に Resources ファイルを編集することはできません。これらは既にコンパイルおよび生成されています。

于 2012-08-18T14:54:20.717 に答える
1

デバイスの画面サイズに応じてサイズを変更することを意味していると思います..これは、values-hdpi、values-xhdpi、values-xxhdpi、values-mdpiなどのフォルダーに複数のdimens.xmlファイルを作成することで作成できます..そして実行時に、コンパイラはdpiに応じてサイズを選択します。実際にはこれを試したことはありませんが、ここで読んでください..これを見てください: http://developer.android.com/guide/practices/screens_support .html#修飾子

于 2013-07-30T13:49:54.433 に答える
1

寸法が画面サイズに適応できるように、すべてのリソースで密度に依存しないピクセルを使用する必要があります。実行時にその値を計算する必要はありません。画面サイズごとに異なるレイアウトが必要な場合は、複数のリソース ファイルを使用することを検討してください。

このガイドをお読みください。

于 2012-08-18T14:53:38.687 に答える