Как динамически исправить размер текста для разных разрешений экрана на Android - PullRequest
0 голосов
/ 01 декабря 2011

У меня есть домашний экран с верхним и нижним колонтитулами, а между ними у меня есть десять строк текста для отображения.размер текста жестко закодирован в Java, но когда я запускаю приложение, нижний колонтитул растягивается, чтобы отрегулировать с фиксированным размером текста.но это выглядит странно, когда он растягивается.Есть ли способ назначить размер текста динамически в зависимости от экрана.Пожалуйста, помогите мне с этим, если вы посмотрите на изображение, вы поймете проблему нижнего колонтитула.

if (dpiClassification == DisplayMetrics.DENSITY_HIGH) {
        if (isTablet) {
            textSize = (int) (((d.getHeight() - (totImageHeight)) / 10) - (25 * dm.density));
        } else {
            textSize = (int) (((d.getHeight() - (totImageHeight)) / 10) - (11 * dm.density));
        }

    } else if (dpiClassification == DisplayMetrics.DENSITY_MEDIUM) {
        if (isTablet) {
            textSize = 90;// (int) (((d.getHeight() - (totImageHeight)) /
                            // 10) - (15 * dm.density));
        } else {
            textSize = (int) (((d.getHeight() - (totImageHeight)) / 10));
        }
    } else {
        textSize = (int) (((d.getHeight() - (totImageHeight)) / 10));
    }

1 Ответ

2 голосов
/ 01 декабря 2011

Попробуйте установить размер текста в DP и динамически преобразовать DP в PX и поместить значения этого PX в

*.textSize(pxValue);

Для конвертации я использую следующий код:

private static DisplayMetrics metrics = null;
private static float density = 0.0;

private int dpToPxConverter(Context context, int dp){
        if (metrics == null) {
            metrics = context.getResources().getDisplayMetrics();
            density = metrics.density;
        }
        return (int) (density * dp + 0.5f);
    }

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...