Я создал холст. И я рисую текст на холсте. Но когда я тестирую разные версии андроида, текст выглядит по-другому. Разница между версией 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, чем андроид 4.0.3.
Возможно, это связано с различной плотностью экрана.
Я предполагаю, что Paint.setTextSize()
занимает размер в пикселях, а не в dp. Чтобы отобразить один и тот же размер в дюймах между устройствами, вам нужно будет определить размер текста, который вы хотите отобразить в dp, и преобразовать это значение в пиксели.
// The TEXT SIZE expressed in dp
private static final float MYTEXTSIZE = 50.0f;
// Get the screen 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);
paint.setTextSize()
принимает только аргумент с плавающей точкой.