$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 } | nullجهاز OBD