当我使用drawText使用自定义字体(基本上是图标ex:WINGDING.ttf)绘制文本时,会显示提供的简单文本。
我遵循的步骤: 1. 将字体文件添加到 Assets 文件夹 2. 使用添加的字体设置绘制 3. 使用绘制绘制文本
为了绘制文本,我使用了相应的英文字符
canvas.drawText("p",0,1, x, y, myPaint);
这在应用程序上显示为 p
use this way if you have assets/fonts:
private Paint myPaint= new Paint(Paint.ANTI_ALIAS_FLAG);
private Typeface mFace;
mFace = Typeface.createFromAsset(getContext().getAssets(),"fonts/WINGDING.ttf");
myPaint.setTextSize(32);
myPaint.setTypeface(mFace);
canvas.drawText("test test",0,1, x, y, myPaint);
//canvas.drawText("test test", 10, 200, myPaint);
example:
private static class MyView extends View
{
private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);
private Typeface mFace;
public MyView(Context context)
{
super(context);
mFace = Typeface.createFromAsset(getContext().getAssets(),"fonts/WINGDING.ttf");
mPaint.setTextSize(32);
}
@Override protected void onDraw(Canvas canvas)
{
mPaint.setTypeface(mFace);
canvas.drawText("p p p p", 10, 200, mPaint);
}
}
我发现这个链接这个字体转换器的SO帖子,http://www.freefontconverter.com。
我采用了无法渲染的 .ttf 字体并将其再次转换为 .ttf(因此将 .ttf 转换为 .ttf),现在它可以工作了!我希望这有帮助!