嗨,谢谢你的帮助。
我需要在App Widget中使用自定义字体。
通常我会使用类似的东西:
TextView txt = (TextView) findViewById(R.id.custom_font);
Typeface font = Typeface.createFromAsset(getAssets(), "myfont.ttf");
txt.setTypeface(font);
但In无法在RemoteViews上调用 setTypeface(font)。
请提出任何建议?
谢谢!
答案 0 :(得分:3)
您可以使用以下方法。
将字体渲染到画布上,然后将其传递给位图并将其指定给ImageView。
public Bitmap buildUpdate(String text)
{
Bitmap myBitmap = Bitmap.createBitmap(10, 10, Bitmap.Config.ARGB_4444);
Canvas myCanvas = new Canvas(myBitmap);
Paint paint = new Paint();
Typeface mytypeface = Typeface.createFromAsset(this.getAssets(),"fontname.ttf");
paint.setAntiAlias(true);
paint.setSubpixelText(true);
paint.setTypeface(clock);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
paint.setTextSize(65);
paint.setTextAlign(Align.CENTER);
myCanvas.drawText(text, 80, 60, paint);
return myBitmap;
}
使用它像:
String text = "This is my text";
RemoteViews views = new RemoteViews(getPackageName(), R.layout.my_widget_layout);
views.setImageViewBitmap(R.id.my+imageview, buildUpdate(text));
希望这会有所帮助:)
答案 1 :(得分:-1)
由于应用程序在不同的进程中运行,因此您无法使用系统字体。
(我知道用户在很久以前发布了这个帖子,但答案可能对遇到它的人有用)