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

使用WINGDING.ttf字体在画布上绘制文本在android上不起作用,android,image,typeface,drawtext,Android,Image,Typeface,Drawtext,当我使用自定义字体(基本上是图标ex:WINGDING.ttf)绘制文本时,使用drawText会显示所提供的简单文本 我采取了以下步骤: 1.已将字体文件添加到“资源”文件夹 2.使用添加的字体设置paint 3.用油漆画文本 为了绘制文本,我使用了相应的英文字符 canvas.drawText("p",0,1, x, y, myPaint); 这在应用程序上显示为p如果您有资源/字体,请使用这种方式: private Paint myPaint= new Paint(Pain

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

我采取了以下步骤: 1.已将字体文件添加到“资源”文件夹 2.使用添加的字体设置paint 3.用油漆画文本

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

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

这在应用程序上显示为p

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

    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);  
}  
} 
我发现链接了这个字体转换器


我使用了无法呈现的.ttf字体,并再次将其转换为.ttf(将.ttf转换为.ttf),现在它可以工作了!我希望这有帮助

根据您的评论,我尝试了以下代码,但得到了相同的结果:类MyView扩展视图{Paint myPaint;公共MyView(上下文上下文){super(上下文);Typeface=Typeface.createFromAsset(getResources().getAssets(),“fonts/WINGDING.ttf”);myPaint=new Paint(Paint.ANTI_别名_标志);myPaint.setTypeface(face);myPaint.setTextSize(30);myPaint.setColor(Color.WHITE);}@Override protected void onDraw(画布画布){super.onDraw(画布);Canvas.drawText(“p”,50,50,myPaint);}}仍然相同的结果:文本“p”对应于WINGDING font中的某个字体图标,但它显示的是p pcode是否正确使用任何其他字体而不是WINGDING我尝试了以下字体:
WAKER_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu.TTF->工作,
WEBDINGS.TTF->,
WINGDING.ttf->不起作用
这些字体的一个区别是WAKER\uuuuuu。ttf应将p显示为p,但WEBDINGS.ttf&WINGDING.ttf应将p显示为图标文本我的问题是WEBDINGS.ttf应显示文本图标,表示字符的对应文本(例如:p),但它显示的字符与其相同。i、 e如果不使用图标字体,则在显示时使用默认字体,而不是使用自定义字体(WEBDINGS.TTF)
字体始终适用于我