2015-09-18 84 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); 
相关问题