繁体   English   中英

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

[英]How to change font of textview in Home screen widget?

我想在主屏幕小部件中更改textview的字体吗?

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

我的资产文件夹中有字体。

TextView上有一个名为setTypeface的方法

如果您的字体位于“ Assets / Font / Font.otf”,则设置字体的代码与此类似:

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

可选:如果需要,您可以在继承自TextView的类的构造函数中执行此操作,然后在布局中使用该类,以防万一您想在许多不同的地方使用该字体。 另外,如果您想在构造函数中执行此操作,则可以将字体名称作为样式属性传递到布局中,并使用它代替上面的硬编码字符串。

RemoteView方法非常有限。 但是setImageViewBitmap就足够了。
使用Java代码创建TextView,启用此功能:

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

现在设置typeFace,更改字体大小并执行所需的操作,最后可以获取所需的位图并将其设置为主屏幕ImageView

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM