$env · Ambiente de exibição

$env fornece o tamanho, tema, modo de exibição, unidade e idioma do instrumento atual, que é usado para adaptar o mesmo código para exibir cenários como telefones celulares e HUD.

Tamanho e layout

width, height são a largura e altura da área atual disponível do instrumento, em pontos da tela, e variam de acordo com o tamanho do cartão e ambiente de exibição. Eles não são a resolução de todo o telefone, nem o número de pixels da imagem.

Fontes, raio gráfico e coordenadas de extremidade que precisam ser ajustadas com tamanho devem ser calculadas usando esta largura e altura em main(). Um círculo fixo de 120 pontos sempre usa um tamanho fixo; para variar com o cartão, calcule o diâmetro utilizando o menor valor da largura e altura disponíveis.

Tema, modo de exibição e unidades

foreground é a cor do texto apropriada para o plano de fundo atual, accent é a cor de destaque e dark representa a aparência escura atual. O valor de mode é instruments ou hud, indicando um medidor normal ou display HUD.

speedUnit representa a unidade de exibição de velocidade atual, language é a linguagem do aplicativo e reduceMotion representa a configuração do efeito dinâmico de enfraquecimento do sistema. obdDevice fornece id e name do dispositivo atualmente conectado ou vazio se não houver nenhum dispositivo pronto. Os rótulos das unidades devem ser usados ​​com valores numéricos; alterar o rótulo em si não converterá o valor numérico.

Exemplo: Adaptar modo de exibição

O exemplo a seguir usa um tamanho de fonte maior no modo HUD e usa a cor do texto do tema atual e unidades de velocidade.

function main() {
  return (
    <Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
      {$env.speedUnit}
    </Text>
  );
}

atualização do ambiente

CapDrive fornece novas informações quando dimensões, temas ou outras circunstâncias mudam. Coloque os cálculos que dependem de $env dentro de main() para garantir que o próximo sorteio utilize os novos valores. Os efeitos de animação repetidos são ajustados de acordo com reduceMotion para evitar ignorar as preferências do sistema do usuário.

Campo

widthnumber

Largura

heightnumber

Altura

darkboolean

Aparência escura

foregroundstring

Cor do texto

mode"instruments" | "hud"

Modo de exibição

speedUnit"km/h" | "mph"

Unidade de velocidade

languagestring

Idioma do app

reduceMotionboolean

Reduzir Movimento

accentstring

Cor de destaque

obdDevice{ id: string; name: string } | null

Dispositivo OBD