Рисование текста на холсте шрифтом WINGDING.ttf не работает на Android

Когда я рисую текст с помощью пользовательского шрифта (в основном icon ex: WINGDING.ttf), используя drawText, отображается простой текст, как указано.

Шаги, за которыми я следовал: 1. Добавил файл шрифта в папку "Ресурсы" 2. Установите краску с добавленным шрифтом 3. Рисуем текст с краской

Для рисования текста я использовал соответствующий английский символ

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

Это отображается как р в приложении

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

Я нашел этот пост, который связывал этот конвертер шрифтов, http://www.freefontconverter.com/.

Я взял свой.ttf шрифт, который не рендерится, и снова преобразовал его в.ttf (поэтому.ttf в.ttf), и теперь он работает! Надеюсь, это поможет!

Другие вопросы по тегам