2012-04-28 9 views
1

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

шаги я следовал: 1. Добавлен файл шрифта в папку Assets 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); 
} 
} 
+0

Я попытался следующий код, как на ваш комментарий, но получить тот же результат: класс MyView распространяется Просмотр { \t Paint MyPaint; \t \t общественный MyView (контекстный контекст) { \t \t \t супер (контекст); \t \t \t Typeface face = Typeface.createFromAsset (getResources(). GetAssets(), "fonts/WINGDING.ttf"); \t \t \t myPaint = новая краска (Paint.ANTI_ALIAS_FLAG); \t \t \t myPaint.setTypeface (лицо); \t \t \t myPaint.setTextSize (30); \t \t \t myPaint.setColor (Color.WHITE); \t \t} \t \t @Override \t защищен недействительным OnDraw (холст холст) { \t \t \t super.onDraw (холст); \t \t \t canvas.drawText ("p", 50, 50, myPaint); \t \t} } – user1287553

+0

видеть мои редактировать answee –

+0

еще такие же результата: текст «PPPP» соответствует некоторому иконке шрифта в WINGDING шрифте, но он отображает PPPP – user1287553

0

Я нашел this SO post, связывающую этот конвертер шрифта, http://www.freefontconverter.com.

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