Рисование текста на холсте шрифтом 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), и теперь он работает! Надеюсь, это поможет!