$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
widthnumberLargura
heightnumberAltura
darkbooleanAparência escura
foregroundstringCor do texto
mode"instruments" | "hud"Modo de exibição
speedUnit"km/h" | "mph"Unidade de velocidade
languagestringIdioma do app
reduceMotionbooleanReduzir Movimento
accentstringCor de destaque
obdDevice{ id: string; name: string } | nullDispositivo OBD