2015-09-18 118 views
0

我想在主屏幕小部件中更改textview的字體?如何在主屏幕小部件中更改textview的字體?

  RemoteViews remoteViews = new RemoteViews(context.getPackageName(), 
       R.layout.time_widget_layout); 
     remoteViews.setTextViewText(R.id.tvTime, Utility.getCurrentTime("hh:mm:ss a")); 

我在我的資產文件夾中有字體。

+1

AFAIK,這是不可能的。 – CommonsWare

+0

@CommonsWare任何其他方式? –

回答

0

的TextView有一個方法就可以了叫 setTypeface

設置字體看起來類似於這樣的代碼,如果您的字體是「資產/字體/ Font.otf」:

Typeface font = Typeface.createFromAsset(context.getAssets(), "Font/Font.otf"); 
TextView textView = (TextView)findViewById(R.id.tvTime); 
textView.setTypeface(font, Typeface.NORMAL); 

可選: 如果需要,您可以在繼承自TextView的類的構造函數中執行此操作,然後在佈局中使用該類,以防您想在一堆不同的位置使用該字體。另外,如果你想在構造函數中完成它,你可以在你的佈局中將字體的名稱作爲樣式屬性傳入,並使用它來代替上面的硬編碼字符串。

-1

RemoteView方法非常有限。但setImageViewBitmap就足夠了。
使用Java代碼創建一個TextView,啓用此功能:

textView.setDrawingCacheQuality(View.DRAWING_CACHE_QUALITY_HIGH); 
textView.setDrawingCacheEnabled(true); 

現在設置字體,改變字體大小,做任何你想要的,最後你可以得到你想要的位圖,並將其設置爲您的主屏幕ImageView的

textView.buildDrawingCache(); 
Bitmap finalResult = textView.getDrawingCache(); 
remoteImageView.setImageViewBitmap(R.id.ivWidget, finalResult); 
相關問題