绘制 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, 油漆);