2011-10-10 74 views
1

我知道要在小部件中使用自定義字體,我需要將字體呈現爲位圖,但是如何以編程方式設置系統字體?android widget:以編程方式設置字體

android:typeface="serif" 
在XML

是成功的,但我不能找到一種方法,在運行時做到這一點。

我現在有

int fn = fullDate.length(); 
SpannableString dt = new SpannableString(fullDate); 
dt.setSpan(new StyleSpan(Typeface.BOLD), 0, fn, 0); 
remoteView.setTextViewText(R.id.dateText, dt); 

其中一期工程,但使用,例如,Typeface.SERIF,給人The constructor StyleSpan(Typeface) is undefined

回答

0

構造爲StyleSpan您使用需要在字樣,而不是一個定義的常量的領域。提供的常量是

Typeface.BOLD 
Typeface.BOLD_ITALIC 
Typeface.ITALIC 
Typeface.NORMAL 

如果您想將字體設置爲特定的字體,你需要使用TextView.setTypeFace()

編輯 這不能爲小部件來完成,因爲你只能訪問遠程視圖。其他人通過將圖像傳遞給遠程視圖來規避這一點。看到這個問題的詳細信息: How to use a custom typeface in a widget?

+0

這是一個小部件,所以我沒有setTypeFace()可 – aperture

+0

@aperture對於窗口小部件,看到這個問題http://stackoverflow.com/questions/4318572/how-to -use-a-custom-type-in​​-a-widget – spatulamania

+0

我的印象只是自定義字體所必需的,而不是系統字體 – aperture