为了在我的小部件上放置自定义字体,我正在创建一个包含该字体的位图,然后将该位图放入我的RemoteViews中。但是,位图上的文本非常模糊,与Activity中清晰明了的外观相比,看起来非常像素化。
已经有相当多的应用程序在小部件上使用自定义字体。但是目前我还没有找到一个可靠的解决方法。如果有人有更好的解决此问题的方法,我很想听听!
现在,这就是我正在使用的方法来创建位图并将其放置在小部件上:
罪魁祸首是小部件!顶部的小部件使用了自定义字体,中间的图像使用了默认的Sans字体,以位图的形式显示,无论使用何种字体,文本都会模糊。当使用默认的
如有任何关于这个问题的帮助将不胜感激!
已经有相当多的应用程序在小部件上使用自定义字体。但是目前我还没有找到一个可靠的解决方法。如果有人有更好的解决此问题的方法,我很想听听!
现在,这就是我正在使用的方法来创建位图并将其放置在小部件上:
RemoteViews widgetView = new RemoteViews(this.getPackageName(), R.layout.widget);
widgetView.setImageViewBitmap(R.id.widgetImage, buildBitmap());
使用
public Bitmap buildBitmap() {
Bitmap bitmap = Bitmap.createBitmap(160, 84, Bitmap.Config.ARGB_8888);
Canvas canvas = new Canvas(bitmap);
TextPaint textPaint = new TextPaint(TextPaint.LINEAR_TEXT_FLAG | TextPaint.ANTI_ALIAS_FLAG);
textPaint.setTypeface(getFont());
textPaint.setStyle(Style.FILL);
textPaint.setColor(fontColor);
textPaint.setTextSize(fontSize);
StaticLayout staticLayout = new StaticLayout(textString, textPaint, bitmap.getWidth(), Alignment.ALIGN_NORMAL, 1.0f, 0.0f, false);
staticLayout.draw(canvas);
return bitmap;
}
罪魁祸首是小部件!顶部的小部件使用了自定义字体,中间的图像使用了默认的Sans字体,以位图的形式显示,无论使用何种字体,文本都会模糊。当使用默认的
remoteView.setTextViewText("Text");
而不是位图时,最后一张图片显示出文本的样子。如有任何关于这个问题的帮助将不胜感激!