Почему getTextSize() меняется с ориентацией?

У меня есть небольшая активность Android с парой TextViews. Размер шрифта резко меняется, когда я поворачиваюсь между пейзажем и портретом.

XML для одного представления выглядит так:

<TextView
    android:id="@+id/question"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="@dimen/small_margin"
    android:layout_marginTop="@dimen/small_margin"
    android:text="@+string/question"
    android:textSize="@dimen/medium_text_size" />

Значение medium_text_size по умолчанию определено в измерениях. Для разных размеров экрана существуют разные размеры. XML-файлы, но НЕ для -port или -land. Мое устройство (Samsung Note 3) сообщает о нормальном размере экрана в обоих направлениях, и значение в соответствующем измерении.

<dimen name="medium_text_size">50sp</dimen>

Строка, которую я добавил в onCreate для отладки, тоже кажется достаточно простой:

questionText = (TextView) findViewById(R.id.question);
Log.d(TAG, "Raw incoming size: " + questionText.getTextSize());

Когда я поворачиваюсь в портретный режим, записывается значение 72. Переходя в альбомную ориентацию, 150 записывается. Как и следовало ожидать, текст выглядит примерно в два раза больше. Я знаю, что возвращаемое значение getTextSize() не будет таким же, как значение в измерение s.xml, потому что единицы измерения разные, но я не понимаю, почему ориентация имеет значение.

Есть некоторые вещи, которые я хочу сделать с размером шрифта, но сначала я хочу понять это.

0 ответов

Другие вопросы по тегам