绘制 fontawesome 到位图
Draw fontawesome to bitmap
我想在 android 中绘制一个从 fontawesome 到通知视图的图标。为此,我尝试将此图标绘制到位图,设置字体,然后在通知视图中设置位图。
我使用这个代码:
Bitmap myBitmap = Bitmap.createBitmap(100, 50, Bitmap.Config.ARGB_8888);
Canvas myCanvas = new Canvas(myBitmap);
Paint paint = new Paint();
Typeface typeface = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontawesome-webfont.ttf");
paint.setAntiAlias(true);
paint.setSubpixelText(true);
paint.setTypeface(typeface);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
paint.setTextSize(15);
myCanvas.drawText("", 0, 20, paint);
notificationView.setImageViewBitmap(R.id.activity, myBitmap);
但它只显示 ""
而没有图标。在其他情况下,fontawesome 工作得很好。

是一个 HTML 风格的实体引用。 Android 中的大多数地方只会将其视为没有特定含义的字符序列。
对于您的情况,最简单的解决方案是使用 Java Unicode 字符串文字语法,将 &#x
替换为 \u
并删除 ;
,从而使您 "\uf29d"
.
在Android中,您应该使用“\uf29d”格式。
例如,
uniCode = "\uf29d"
canvas.drawText(uniCode, x, y, paint);
要么
canvas.drawText("\uf29d", x, y, 油漆);
我想在 android 中绘制一个从 fontawesome 到通知视图的图标。为此,我尝试将此图标绘制到位图,设置字体,然后在通知视图中设置位图。
我使用这个代码:
Bitmap myBitmap = Bitmap.createBitmap(100, 50, Bitmap.Config.ARGB_8888);
Canvas myCanvas = new Canvas(myBitmap);
Paint paint = new Paint();
Typeface typeface = Typeface.createFromAsset(getApplicationContext().getAssets(),"fonts/fontawesome-webfont.ttf");
paint.setAntiAlias(true);
paint.setSubpixelText(true);
paint.setTypeface(typeface);
paint.setStyle(Paint.Style.FILL);
paint.setColor(Color.WHITE);
paint.setTextSize(15);
myCanvas.drawText("", 0, 20, paint);
notificationView.setImageViewBitmap(R.id.activity, myBitmap);
但它只显示 ""
而没有图标。在其他情况下,fontawesome 工作得很好。

是一个 HTML 风格的实体引用。 Android 中的大多数地方只会将其视为没有特定含义的字符序列。
对于您的情况,最简单的解决方案是使用 Java Unicode 字符串文字语法,将 &#x
替换为 \u
并删除 ;
,从而使您 "\uf29d"
.
在Android中,您应该使用“\uf29d”格式。
例如, uniCode = "\uf29d" canvas.drawText(uniCode, x, y, paint); 要么 canvas.drawText("\uf29d", x, y, 油漆);