$env ・表示環境
$env は、現在の機器のサイズ、テーマ、表示モード、単位、言語を提供します。これは、同じコードを携帯電話や HUD などの表示シナリオに適合させるために使用されます。
サイズとレイアウト
width、height は、機器の現在利用可能な領域の幅と高さ (画面ポイント単位) であり、カードのサイズとディスプレイ環境によって異なります。これらは電話機全体の解像度でも、画像内のピクセル数でもありません。
サイズを調整する必要があるフォント、グラフィックの半径、エンドポイントの座標は、main() のこの幅と高さを使用して計算する必要があります。固定 120 ポイントの円は常に固定サイズを使用します。カードによって異なるようにするには、利用可能な幅と高さの小さい方の値を使用して直径を計算します。
テーマ・表示モード・単位
foreground は現在の背景に適したテキストの色、accent はアクセントカラー、dark は現在の暗い外観を表します。 mode の値は instruments または hud で、通常のメーターまたは HUD ディスプレイを示します。
speedUnit は現在の速度表示単位を表し、language はアプリ言語を表し、reduceMotion はシステム弱化ダイナミック効果設定を表します。 obdDevice は、現在接続されているデバイスの id および name を提供します。準備ができているデバイスがない場合は空です。単位ラベルは数値とともに使用する必要があります。ラベル自体を変更しても数値は変換されません。
例: 表示モードを調整する
次の例では、HUD モードで大きなフォント サイズを使用し、現在のテーマのテキストの色と速度の単位を使用します。
function main() {
return (
<Text fontSize={$env.mode === 'hud' ? 72 : 48} color={$env.foreground}>
{$env.speedUnit}
</Text>
);
}
環境アップデート
CapDrive は、ディメンション、テーマ、その他の状況が変化したときに新しい入力を提供します。 $env に依存する計算を main() 内に配置して、次の描画で新しい値が使用されるようにします。繰り返されるアニメーション効果は、ユーザーのシステム設定を無視しないように、reduceMotion に従って調整されます。
分野
widthnumber幅
heightnumber高さ
darkbooleanダーク表示
foregroundstring文字色
mode"instruments" | "hud"表示モード
speedUnit"km/h" | "mph"速度単位
languagestringアプリの言語
reduceMotionboolean視差効果を減らす
accentstringアクセントカラー
obdDevice{ id: string; name: string } | nullOBD デバイス