使用Eclipse编写android应用程序并使用最新的API进行编译。在Android应用程序中设置文本大小
我正在设置多个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控件显示为wer e动态创建的文本小于在XML中定义的屏幕上剩余的TextView。
这里有一个链接,屏幕截图: http://emildiego.com/systemprofiler/wp-content/uploads/sites/2/2013/04/screen-shot-text-copy.png
我知道打电话getDimension调节基于屏幕密度的文本大小,但不会设置TEXTSIZE在XML做同样的事情?
在此先感谢您的帮助。
我意识到getDimension会根据屏幕密度调整大小。但是为什么不在XML中使用维度font_size做同样的事情?为什么我使用相同的维度获得2种不同的字体大小? – 2013-04-11 16:26:21
getDimensionPixelSize()仍返回与使用XML设置的TextView不同的字体大小。所以我仍然使用相同的尺寸获得具有不同字体大小的TextView。 – 2013-04-11 16:37:28