$env · Environnement d'affichage
$env fournit la taille, le thème, le mode d'affichage, l'unité et la langue de l'instrument actuel, qui sont utilisés pour adapter le même code pour afficher des scénarios tels que les téléphones mobiles et HUD.
Taille et disposition
width, height sont la largeur et la hauteur de la zone actuellement disponible de l'instrument, en points d'écran, et varient en fonction de la taille de la carte et de l'environnement d'affichage. Il ne s’agit pas de la résolution de l’ensemble du téléphone, ni du nombre de pixels de l’image.
Les polices, le rayon graphique et les coordonnées du point final qui doivent être ajustés avec la taille doivent être calculés en utilisant cette largeur et cette hauteur dans main(). Un cercle fixe de 120 points utilise toujours une taille fixe ; pour le faire varier avec la carte, calculez le diamètre en utilisant la plus petite valeur de la largeur et de la hauteur disponibles.
Thème, mode d’affichage et unités
foreground est la couleur du texte appropriée pour l'arrière-plan actuel, accent est la couleur d'accentuation et dark représente l'apparence sombre actuelle. La valeur de mode est instruments ou hud, indiquant un affichage normal du compteur ou HUD.
speedUnit représente l'unité d'affichage de la vitesse actuelle, language est le langage de l'application et reduceMotion représente le paramètre d'effet dynamique d'affaiblissement du système. obdDevice fournit id et name de l'appareil actuellement connecté, ou vide s'il n'y a pas d'appareil prêt. Les étiquettes d'unité doivent être utilisées avec des valeurs numériques ; changer l'étiquette elle-même ne convertira pas la valeur numérique.
Exemple : Adapter le mode d'affichage
L'exemple suivant utilise une taille de police plus grande en mode HUD et utilise la couleur du texte du thème actuel et les unités de vitesse.
function main() {
return (
<Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
{$env.speedUnit}
</Text>
);
}
mise à jour de l'environnement
CapDrive fournit de nouvelles entrées lorsque les dimensions, les thèmes ou d'autres circonstances changent. Placez les calculs qui dépendent de $env à l'intérieur de main() pour vous assurer que le prochain tirage utilise les nouvelles valeurs. Les effets d'animation répétés sont ajustés selon reduceMotion pour éviter d'ignorer les préférences système de l'utilisateur.
Champ
widthnumberLargeur
heightnumberHauteur
darkbooleanApparence sombre
foregroundstringCouleur du texte
mode"instruments" | "hud"Mode d’affichage
speedUnit"km/h" | "mph"Unité de vitesse
languagestringLangue de l’app
reduceMotionbooleanRéduire les animations
accentstringCouleur d’accentuation
obdDevice{ id: string; name: string } | nullAppareil OBD