Долгое время это было в моей теме Compose:
Код: Выделить всё
return if (configuration.screenWidthDp < SMALL_DEVICE_DENSITY) {
sw360Typography()
} else if (configuration.screenWidthDp < LARGE_DEVICE_DENSITY) {
defaultTypography()
} else {
sw600Typography()
}
Раньше это работало отлично, но в последнее время я получаю жалобы на то, что на новейших устройствах текст слишком мелкий и очень трудно читать.
Я попытался улучшить свою старую логику с помощью WindowSizeClass, но результаты повсюду. Такие устройства, как Pixel 9 Pro XL, в некоторых случаях возвращают размерный класс Compact.
Мое текущее решение выглядит примерно так, прежде всего я использую эту формулу для расчета высоты устройства в пикселей, а если больше 1400, то увеличиваю все размеры на х1,15
Код: Выделить всё
val isHighEndDevice = remember {((configuration.densityDpi / 160) *
configuration.screenHeightDp) > 1400
}
И вот здесь я прошу помощи. . Мне интересно, может ли кто-нибудь из больших умов в этом сообществе поделиться каким-нибудь лучшим способом справиться с этими случаями или вы, ребята, можете помочь мне улучшить эти формулы?
Сейчас я тестирую разные способы вычисления числа вместо x1,15 с использованием плотностиDpi
Подробнее здесь: https://stackoverflow.com/questions/793 ... s-with-lar
Мобильная версия