Android 4.2.1 wrong character kerning (spacing)
Solution 1:
Workaround, that I'm currently using:
scalePaint.setTextSize(1.5f);
then, in onDraw method:
canvas.save();
canvas.scale(0.01f, 0.01f);
canvas.drawText(""+i, 0.5f*100, 0.8f*100, scalePaint);
canvas.restore();
As you can see, I'm rescaling back the position of the text, so it's where it's supposed to be.
Solution 2:
I answer my own question after accepting the only response that proposed a workaround for my specific issue. That could be a "nice" and "definitive" solution:
public static void drawTextOnCanvasWithMagnifier(Canvas canvas, String text, float x, float y, Paint paint) {
if (android.os.Build.VERSION.SDK_INT <= 15) {
//draw normally
canvas.drawText(text, x, y, paint);
}
else {
//workaround
float originalTextSize = paint.getTextSize();
final float magnifier = 1000f;
canvas.save();
canvas.scale(1f / magnifier, 1f / magnifier);
paint.setTextSize(originalTextSize * magnifier);
canvas.drawText(text, x * magnifier, y * magnifier, paint);
canvas.restore();
paint.setTextSize(originalTextSize);
}
}