Как выбрать размер шрифта и сохранить совместимость в будущем в зависимости от плотности экрана/размера/размера изображений в Android

Я создаю игровое поле с квадратами. Размер каждого квадрата (высота и ширина) равен phone_pixel_width/number_of_squares, чтобы максимизировать размер каждого квадрата на игровом экране в зависимости от разрешения (о, и я не поддерживаю устройства mdpi, поэтому он не становится маленьким).

Теперь моя проблема в том, что я тоже пишу текст в этих квадратах. Если я использую один и тот же размер шрифта для экранов HVGA и для экранов WVGA (hdpi-normal), шрифт становится большим на экране HVGA (mdpi-normal). Я думал о том, чтобы иметь возможность выбирать размер шрифта в зависимости от его ширины и, таким образом, идеально адаптировать размер шрифта к расчетной ширине квадрата.

Есть ли простой способ сделать это (примечание: я использую TextPaint, а не TextView) или мне нужно вычислить это самостоятельно, так сказать, на лету, создав какую-то таблицу при запуске.

Спасибо :-)

/ Хенрик


person Henrik    schedule 10.08.2010    source источник


Ответы (1)


При работе с несколькими плотностями все значения пикселей должны быть умножены на плотность экрана.

float fontSize = 13 * context.getResources().getDisplayMetrics().density;

плотность обычно равна 1 на устройствах mdpi и 1,5 на hdpi. лдпи ниже.

person Moncader    schedule 11.08.2010