1

我使用 Eclipse 编写一个 android 应用程序并使用最新的 API 进行编译。

我正在设置多个 TextView 控件的 TextSize。一些控件是在 XML 中定义的,而一些 TextView 控件是在代码中动态创建的。当我查看应用程序中的 TextView 控件时,文本大小是不同的。我正在使用相同的尺寸设置文本大小,所以我不明白为什么它会出现不同的结果。

这是我定义的维度:

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

这是我在 XML 中设置 textview 控件之一的地方:

<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。

这是屏幕截图的链接: http: //emildiego.com/systemprofiler/wp-content/uploads/sites/2/2013/04/screen-shot-text-copy.png

我知道调用 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 回答