$env · Среда отображения
$env предоставляет размер, тему, режим отображения, единицы измерения и язык текущего инструмента, который используется для адаптации того же кода для таких сценариев отображения, как мобильные телефоны и HUD.
Размер и планировка
width, height — ширина и высота текущей доступной области инструмента в точках экрана и зависят от размера карты и среды отображения. Это не разрешение всего телефона и не количество пикселей в изображении.
Шрифты, графический радиус и координаты конечной точки, которые необходимо скорректировать по размеру, должны рассчитываться с использованием этой ширины и высоты в main(). Фиксированный круг из 120 точек всегда имеет фиксированный размер; чтобы он менялся в зависимости от карты, рассчитайте диаметр, используя меньшее значение доступной ширины и высоты.
Тема, режим отображения и единицы измерения
foreground — это цвет текста, соответствующий текущему фону, accent — цвет акцента, а dark — текущий темный вид. Значение mode — instruments или hud, что указывает на обычный индикатор или дисплей HUD.
speedUnit представляет собой единицу отображения текущей скорости, language — язык приложения, а reduceMotion — настройку динамического эффекта ослабления системы. obdDevice предоставляет id и name текущего подключенного устройства или пуст, если готового устройства нет. Метки единиц измерения должны использоваться с числовыми значениями; изменение самой метки не приведет к преобразованию числового значения.
Пример: Адаптация режима отображения
В следующем примере используется больший размер шрифта в режиме HUD, а также цвет текста текущей темы и единицы измерения скорости.
function main() {
return (
<Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
{$env.speedUnit}
</Text>
);
}
обновление среды
CapDrive предоставляет новые данные при изменении размеров, тем или других обстоятельств. Поместите вычисления, зависящие от $env, внутри main(), чтобы гарантировать, что при следующем отрисовке будут использованы новые значения. Повторяющиеся эффекты анимации настраиваются в соответствии с reduceMotion, чтобы не игнорировать системные настройки пользователя.
Поле
widthnumberШирина
heightnumberВысота
darkbooleanТёмное оформление
foregroundstringЦвет текста
mode"instruments" | "hud"Режим отображения
speedUnit"km/h" | "mph"Единица скорости
languagestringЯзык приложения
reduceMotionbooleanУменьшение движения
accentstringАкцентный цвет
obdDevice{ id: string; name: string } | nullУстройство OBD