1

Eclipse を使用して Android アプリを作成し、最新の API を使用してコンパイルしています。

複数の TextView コントロールの TextSize を設定しています。一部のコントロールは XML で定義され、一部の TextView コントロールはコードで動的に作成されました。アプリケーションで TextView コントロールを見ると、テキストのサイズが異なります。同じ寸法を使用してテキストサイズを設定しているため、なぜ異なる結果になるのかわかりません。

私が定義した次元は次のとおりです。

<!--  Default Font Size -->
<dimen name="font_size">12sp</dimen>

ここでは、XML で textview コントロールの 1 つを設定しています。

<TextView
android:id="@+id/lblSection1Title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/device_info_title"
android:textColor="@color/FontColor"
android:textSize="@dimen/font_size" />

そして、コードでテキストサイズを設定している場所は次のとおりです。

m_fTextSize = getResources().getDimension( R.dimen.font_size );
txtLabel = new TextView(this.m_xContext);
xLayoutParams = new TableRow.LayoutParams( 0, LayoutParams.WRAP_CONTENT, 0.35f );
xLayoutParams.setMargins((int)m_fMarginLeft,  (int)m_fMarginTop,  (int)m_fMarginRight,  (int)m_fMarginBottom);
txtLabel.setLayoutParams(xLayoutParams);
txtLabel.setTextColor(this.m_iTextColor);
txtLabel.setTextSize(this.m_fTextSize);

スクリーン ショットを見ると、動的に作成された TextView コントロールが、XML で定義された画面上の残りの TextView よりも小さいことがわかります。

スクリーン ショットへのリンクは次のとおりです

getDimension を呼び出すと、画面密度に基づいてテキスト サイズが調整されることはわかっていますが、XML で TextSize を設定しても同じことはできないでしょうか?

よろしくお願いします。

4

1 に答える 1

1

あなたの答えはここにあります: http://developer.android.com/reference/android/content/res/Resources.html#getDimension(int)

Android が値を返したとき、getDimension()すでに画面密度が調整されています。getDimensionPixelSize()代わりに使用してみてください。

于 2013-04-11T12:22:18.303 に答える