$env · Görüntüleme ortamı
$env, aynı kodu cep telefonları ve HUD gibi görüntüleme senaryolarına uyarlamak için kullanılan mevcut enstrümanın boyutunu, temasını, görüntüleme modunu, birimini ve dilini sağlar.
Boyut ve düzen
width, height, cihazın mevcut kullanılabilir alanının ekran noktalarındaki genişliği ve yüksekliğidir ve kart boyutuna ve görüntüleme ortamına göre değişir. Bunlar telefonun tamamının çözünürlüğü veya görüntüdeki piksel sayısı değildir.
Boyuta göre ayarlanması gereken yazı tipleri, grafik yarıçapı ve uç nokta koordinatları, main()'daki bu genişlik ve yükseklik kullanılarak hesaplanmalıdır. 120 noktalı sabit bir daire her zaman sabit bir boyut kullanır; Karta göre değişmesini sağlamak için mevcut genişlik ve yükseklikten daha küçük olan değeri kullanarak çapı hesaplayın.
Tema, görüntüleme modu ve birimler
foreground geçerli arka plana uygun metin rengidir, accent vurgu rengidir ve dark geçerli koyu görünümü temsil eder. mode değeri instruments veya hud olup, normal bir ölçüm cihazını veya HUD ekranını belirtir.
speedUnit mevcut hız görüntüleme birimini temsil eder, language Uygulama dilini ve reduceMotion sistem zayıflatma dinamik efekt ayarını temsil eder. obdDevice, o anda bağlı olan cihazın id ve name bilgilerini sağlar veya hazır cihaz yoksa boştur. Sayısal değerlerle birlikte birim etiketleri kullanılmalı; etiketin kendisini değiştirmek sayısal değeri dönüştürmez.
Örnek: Ekran modunu uyarlama
Aşağıdaki örnek, HUD modunda daha büyük bir yazı tipi boyutu kullanır ve geçerli tema metni rengini ve hız birimlerini kullanır.
function main() {
return (
<Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
{$env.speedUnit}
</Text>
);
}
ortam güncellemesi
CapDrive boyutlar, temalar veya diğer koşullar değiştiğinde yeni girdiler sağlar. Bir sonraki çekilişin yeni değerleri kullanmasını sağlamak için $env'ye bağlı hesaplamaları main() içine koyun. Tekrarlanan animasyon efektleri, kullanıcının sistem tercihlerinin göz ardı edilmesini önlemek için reduceMotion'ye göre ayarlanır.
Alan
widthnumberGenişlik
heightnumberYükseklik
darkbooleanKoyu görünüm
foregroundstringMetin rengi
mode"instruments" | "hud"Görüntüleme modu
speedUnit"km/h" | "mph"Hız birimi
languagestringUygulama dili
reduceMotionbooleanHareketi Azalt
accentstringVurgu rengi
obdDevice{ id: string; name: string } | nullOBD cihazı