Android текст на холсте - PullRequest
       13

Android текст на холсте

1 голос
/ 16 марта 2012

Я создал холст.И я рисую текст на холсте.Но когда я тестирую на разных версиях андроида, текст выглядит иначе.Разница между версиями 4.х и 2.2.

    Bitmap btmText = Bitmap.createBitmap(140, 90, Bitmap.Config.ARGB_4444);
    Canvas cnvText = new Canvas(btmText);
    Typeface tf = tf = Typeface.createFromAsset(context.getAssets(),"fonts/font.ttf");

    Paint paint = new Paint();
    paint.setAntiAlias(true);
    paint.setSubpixelText(true);
    paint.setTypeface(tf);
    paint.setTextSize(50);
    cnvText.drawText(text, 0, 5, 0, 55, paint);

Текст на Android 2.2 выглядит больше, чем на Android 4.0.3.

1 Ответ

5 голосов
/ 16 марта 2012

Это может быть из-за разной плотности экрана.

Я думаю, Paint.setTextSize() принимает размер в пикселях, а не в дп. Чтобы отображать одинаковый размер в дюймах на разных устройствах, вам нужно выбрать размер текста, который вы хотите отобразить в dp, и преобразовать это значение в пиксели.

// The TEXT SIZE expressed in dp
private static final float MYTEXTSIZE = 50.0f;

// Get the screen's density scale
final float scale = getResources().getDisplayMetrics().density;
// Convert the dps to pixels, based on density scale
textSizePx = (int) (MYTEXTSIZE * scale + 0.5f);

paint.setTextSize(textSizePx);
...