У меня есть квадрат LinearLayout, содержащий несколько других LinearLayouts
с ImageViews
и TextViews
внутри. Я сохраняю содержимое макета как файл png после того, как пользователь его изменил. Все изображения и тексты упорядочиваются с использованием значений общей гравитации и layout_gravity. Вот небольшой пример:Android набор TextView размер текста, чтобы выглядеть одинаково на всех размерах экрана
Вот моя проблема: Я хочу SAMPLE TEXT выглядеть точно так же размер всех размеров экрана, будучи телефон 480p или таблетка 1200p. Первоначально я думал, что установить размер текста в SP
будет достаточно, но это не так, потому что по мере увеличения разрешения экрана текст становится меньше.
Итак, мой вопрос в том, как я могу программно установить размер текста, чтобы он выглядел точно такого же размера, независимо от ширины экрана. Как вы видите, родительский макет всегда будет квадратом.
Я попытался программно установить SP или использовать масштабный коэффициент.
float scale = 0;
if (screenWidth == 720) {
scale = 1;
} else {
scale = (720 - screenWidth) * 100.2f/screenWidth;
}
float defaultSizeFor720 = 35f;
textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, defaultSizeFor720 * scale);
Не работает. по мере увеличения экрана текст становится меньше, не так мал, как при использовании только SP, но все же. Я также пробовал большинство ответов из других вопросов, но все еще не работал. Любые идеи?
Вы пытались использовать dp вместо sp? sp будет масштабироваться как для размера экрана, так и для пользовательских настроек. – fhsilva
Если 'sp' не работает, вы можете сделать отдельную' dimance' для разных экранов – Xcihnegn