无法制作原生字体(字体类型无法更改)

时间:2015-05-27 07:09:34

标签: android android-typeface

我已经从文本中创建了位图。但我想更改位图中使用的字体类型。但它保持原生字体无法制作。所以字体的类型不能改变。

这是我的代码

public void textAsBitmap(String text, float textSize) {
    Paint paint = new Paint();
    try 
    {
        Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/PROGGY.TTF");
        paint.setTypeface(tf);
    }
    catch(Exception e)
    {
        Log.d("your tag", "typeface error: ", e);
    }

    paint.setTextSize(textSize);
    paint.setColor(Color.WHITE);
    paint.setTextAlign(Paint.Align.LEFT);
    int width = (int) (paint.measureText(text) + 0.20f); // round 0.5f
    float baseline = (int) (-paint.ascent() + 0.5f); // ascent() is negative
    int height = (int) (baseline + paint.descent() + 0.50f); //0.5f
    Bitmap image = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
    Canvas canvas = new Canvas(image);
    canvas.drawText(text, 0, baseline, paint);
    printBitmap(image);

}

我将proggy.ttf存储在这里 enter image description here

1 个答案:

答案 0 :(得分:1)

探索之后,尝试和错误,集思广益,并尝试外向。然后我发现了这些..

当我使用此代码时。我不能改变我的字体。它保持原生字体无法制作。

Paint paint = new Paint();

所以我使用这段代码解决了我的问题

TextPaint textPaint = new TextPaint(Paint.ANTI_ALIAS_FLAG
            | Paint.LINEAR_TEXT_FLAG);
    textPaint.setStyle(Paint.Style.FILL);
    textPaint.setColor(Color.BLACK);
    textPaint.setTextSize(textSize);

    try
    {
        Typeface tf =Typeface.createFromAsset(getAssets(),"fonts/proggy.ttf");
        textPaint.setTypeface(tf);
    }
    catch(Exception e)
    {
        Log.d("your tag", "typeface error: ", e);
    }

然后是" fonts / proggy.ttf "需要是小写的。当我尝试大写时,它不能保持原生字体。所以使用小写,然后字体的类型可以随意改变。问题解决了

感谢反馈M D:)