Вы можете сделать это самостоятельно, используя простую математическую операцию:
Вам необходимо вычислить отношение, при котором ваш текст будет одинакового размера для любого размера холста, поэтому используйте фактический размер холста, например так:
double relation = Math.sqrt(canvas.getWidth() * canvas.getHeight());
Но это число слишком велико, поэтому разделите его на число, которое соответствует вашим потребностям, скажем 250:
relation = relation / 250;
Теперь вы можете установить размер текста следующим образом:
paint.setTextSize((float) (myFontSize * relation));
Вам не нужно делить отношение на любое число, но в этом случае вам придется использовать очень маленький размер шрифта для переменной myFontSize
.Для меня 250 прекрасно работает, если использовать обычный размер шрифта, который будет подстраиваться под любой размер экрана, так как вы уже учитываете размерность пикселей на холсте.