Как я могу улучшить размеры шрифтов моего приложения при использовании на новых устройствах с большими экранами? ⇐ Android

Форум для тех, кто программирует под Android
Anonymous
Как я могу улучшить размеры шрифтов моего приложения при использовании на новых устройствах с большими экранами?

Сообщение Anonymous »

Позвольте мне объяснить, что я делал и какую проблему обнаружил.
Долгое время это было в моей теме Compose:

Код: Выделить всё

return if (configuration.screenWidthDp < SMALL_DEVICE_DENSITY) {
sw360Typography()
} else if (configuration.screenWidthDp < LARGE_DEVICE_DENSITY) {
defaultTypography()
} else {
sw600Typography()
}
Я сделал это для размеров и типографики. все размеры файлов 360 были умножены на x0,75, а у файлов 600 - на x1,5.
Раньше это работало отлично, но в последнее время я получаю жалобы на то, что на новейших устройствах текст слишком мелкий и очень трудно читать.
Я попытался улучшить свою старую логику с помощью WindowSizeClass, но результаты повсюду. Такие устройства, как Pixel 9 Pro XL, в некоторых случаях возвращают размерный класс Compact.
Мое текущее решение выглядит примерно так, прежде всего я использую эту формулу для расчета высоты устройства в пикселей, а если больше 1400, то увеличиваю все размеры на х1,15

Код: Выделить всё

val isHighEndDevice = remember {((configuration.densityDpi / 160) *
configuration.screenHeightDp) > 1400

}
Это не лучшее решение по нескольким причинам. Соответственно, новые устройства имеют конфигурации экрана, которые меняют размеры и плотность экрана. Во-вторых, методом проб и ошибок я добрался до цифр 1400 и x1,15, и они подходят не для всех устройств и конфигураций.
И вот здесь я прошу помощи. . Мне интересно, может ли кто-нибудь из больших умов в этом сообществе поделиться каким-нибудь лучшим способом справиться с этими случаями или вы, ребята, можете помочь мне улучшить эти формулы?
Сейчас я тестирую разные способы вычисления числа вместо x1,15 с использованием плотностиDpi

Подробнее здесь: https://stackoverflow.com/questions/793 ... s-with-lar

Вернуться в «Android»