使用WINGDING.ttf字体在画布上绘制文本不适用于android

时间:2012-04-28 04:34:31

标签: android image typeface drawtext

当我使用自定义字体绘制文本时(基本上是图标ex:WINGDING.ttf),使用drawText显示提供的简单文本。

我遵循的步骤: 1.在Assets文件夹中添加了字体文件 2.使用添加的字体设置绘画 3.用油漆

绘制文字

要绘制文字,我使用了相应的英文字符

canvas.drawText("p",0,1, x, y, myPaint);

在app上显示为p

2 个答案:

答案 0 :(得分:2)

如果你有资产/字体,请使用这种方式:

    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);

示例:

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);  
}  
} 

答案 1 :(得分:0)

我发现this SO post链接了此字体转换器http://www.freefontconverter.com

我把我的.ttf字体无法渲染并再次转换为.ttf(所以.ttf到.ttf)现在它可以工作了!我希望这有帮助!