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

时间:2015-09-18 18:42:04

标签: android fonts remoteview

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

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

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

2 个答案:

答案 0 :(得分:0)

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的类的构造函数内执行此操作,然后在布局中使用该类,以防您想在多个不同的位置使用该字体。此外,如果您想在构造函数中执行此操作,您可以将布局中的样式属性作为样式属性传入,并使用它来代替上面的硬编码字符串。

答案 1 :(得分:-1)

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

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

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

[out:json]
[timeout:25]
;
(
  way
    ["highway"="motorway"]
    ["name"="Brooklyn-Queens Expressway"]
    (40.73483602685421,-73.91463160514832,40.73785205632046,-73.9096748828888);
);
out body qt;