使用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