$env · Entorno de visualización
$env proporciona el tamaño, tema, modo de visualización, unidad e idioma del instrumento actual, que se utiliza para adaptar el mismo código para mostrar escenarios como teléfonos móviles y HUD.
Tamaño y diseño
width, height son el ancho y alto del área disponible actualmente del instrumento, en puntos de pantalla, y varían según el tamaño de la tarjeta y el entorno de visualización. No son la resolución de todo el teléfono ni la cantidad de píxeles de la imagen.
Las fuentes, el radio gráfico y las coordenadas del punto final que deben ajustarse con el tamaño deben calcularse utilizando este ancho y alto en main(). Un círculo fijo de 120 puntos siempre utiliza un tamaño fijo; para que varíe con la tarjeta, calcule el diámetro utilizando el valor menor del ancho y alto disponibles.
Tema, modo de visualización y unidades
foreground es el color de texto apropiado para el fondo actual, accent es el color de acento y dark representa la apariencia oscura actual. El valor de mode es instruments o hud, lo que indica un medidor normal o una pantalla HUD.
speedUnit representa la unidad de visualización de velocidad actual, language es el idioma de la aplicación y reduceMotion representa la configuración del efecto dinámico de debilitamiento del sistema. obdDevice proporciona id y name del dispositivo actualmente conectado, o está vacío si no hay ningún dispositivo listo. Las etiquetas de unidades deben usarse con valores numéricos; cambiar la etiqueta en sí no convertirá el valor numérico.
Ejemplo: adaptar el modo de visualización
El siguiente ejemplo utiliza un tamaño de fuente más grande en el modo HUD y utiliza el color del texto del tema actual y las unidades de velocidad.
function main() {
return (
<Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
{$env.speedUnit}
</Text>
);
}
actualización del entorno
CapDrive proporciona nuevos aportes cuando cambian las dimensiones, los temas u otras circunstancias. Coloque los cálculos que dependen de $env dentro de main() para garantizar que el próximo sorteo utilice los nuevos valores. Los efectos de animación repetidos se ajustan de acuerdo con reduceMotion para evitar ignorar las preferencias del sistema del usuario.
Campo
widthnumberAncho
heightnumberAlto
darkbooleanApariencia oscura
foregroundstringColor del texto
mode"instruments" | "hud"Modo de visualización
speedUnit"km/h" | "mph"Unidad de velocidad
languagestringIdioma de la app
reduceMotionbooleanReducir movimiento
accentstringColor de acento
obdDevice{ id: string; name: string } | nullDispositivo OBD