Получить размер шрифта с помощью autoSize - PullRequest
0 голосов
/ 02 марта 2020

Я использую TextView со свойством autoSizeTextType="uniform".

Размер шрифта в порядке, но теперь мне нужно получить текущий размер, но я всегда получаю «328», поэтому этот размер не соответствует отображаемому размеру.

Есть идеи, как получить размер?

1 Ответ

0 голосов
/ 02 марта 2020

Если вы посмотрите на getTextSize () , он возвращает размер текста в пикселях, поэтому если вы хотите, чтобы размер текста был в sp (sp - наиболее часто используемая единица textSize) тогда вы можете использовать метод, приведенный ниже.

public static int getSPfromPX(int px) {
        int sizeValue;
        float sp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, px, getResources().getDisplayMetrics());
        sizeValue = (int) Math.ceil(sp);
        return sizeValue;
    }

А вот это Kotlin вариант

fun getSPfromPX(px: Int): Int {
        val sizeValue: Int
        val sp = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_SP, px.toFloat(), resources.displayMetrics)
        sizeValue = ceil(sp.toDouble()).toInt()
        return sizeValue
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...