إعداد تنسيق خلفية شاشة الساعة

ملاحظة: تعرض لك هذه الصفحة إحدى خطوات عملية إدارة إعدادات خلفية شاشة الساعة يدويًا. إذا كنت تريد تصميم خلفية شاشة الساعة باستخدام أداة WYSIWYG (ما تراه هو ما تحصل عليه)، يمكنك الاطّلاع أولاً على أدلة Watch Face Studio.

يتضمّن هذا الدليل خطوات حول الأدوات التي تحتاج إليها لضبط خلفية شاشة ساعة باستخدام "تنسيق خلفية شاشة الساعة"، وبعض الاقتراحات بشأن بنية المشروع، ودليلًا تفصيليًا حول كيفية استخدام الأدوات لإنشاء هذه البنية.

بدء استخدام "استوديو Android"

أسهل طريقة لبدء تطوير خلفيات شاشة الساعة يدويًا هي استخدام استوديو Android. تتوفّر ميزة خلفية شاشة الساعة في قناة الإصدار التجريبي.

  1. انقر على ملف > مشروع جديد
  2. ضمن Wear OS، اختَر خلفية شاشة الساعة الأساسية

يؤدي ذلك إلى إنشاء البنية اللازمة لخلفية ساعة تعمل بكامل طاقتها.

بنية المشروع

عند إنشاء خلفية شاشة ساعة مخصّصة تستخدم "تنسيق خلفية شاشة الساعة"، يجب أن تكون مجموعة حزمات تطبيق Android التي تتضمّن ملف خلفية شاشة الساعة المخصّصة منفصلة تمامًا عن مجموعة حزمات تطبيق Android التي تحتوي على منطق تطبيق Wear OS. تمنعك بعض متاجر التطبيقات، بما في ذلك Google Play، من تحميل حِزمة تطبيق Android تتضمّن كلاً من منطق Wear OS وخلفية شاشة ساعة مخصّصة.

تعريف إصدار "تنسيق خلفية شاشة الساعة"

في ملف بيان تطبيقك الجديد (AndroidManifest.xml)، افحص سمة التطبيق التي تشير إلى استخدامك لتنسيق خلفية شاشة الساعة.

لا تتوفّر بعض ميزات "تنسيق خلفية شاشة الساعة" إلا في الإصدارات الأحدث. اضبط هذه السمة على أقل قيمة تتيح الميزات التي تحتاج إليها، وذلك لزيادة توافق الجهاز إلى أقصى حد، واضبط أيضًا minSdkVersion لتتطابق معها. مزيد من المعلومات حول كيفية إعداد إصدارات تطبيقك

<manifest ...>
    <!--
        Use SDK version 33 to support Watch Face Format (WFF) version 1 and
        higher, SDK version 34 to support WFF version 2 and higher, and so on.
    -->
    <uses-sdk
        android:minSdkVersion="34"
        android:targetSdkVersion="34" />

    <!--
        WFF is a resource-only format, so the hasCode attribute should be set to
        false to reflect this.
    -->
    <application
        android:label="@string/watch_face_name"
        android:hasCode="false"
        ...>
        <meta-data android:name="com.google.android.wearable.standalone"
            android:value="true" />
        <property
            android:name="com.google.wear.watchface.format.version"
            android:value="2" />
    </application>
</manifest>

تعريف البيانات الوصفية لخلفية شاشة الساعة

في دليل موارد res/xml لتطبيقك، هناك ملف باسم watch_face_info.xml. هذا هو المكان الذي تحدّد فيه البيانات الوصفية لخلفية شاشة الساعة:

<?xml version="1.0" encoding="utf-8"?>
<WatchFaceInfo>

    <Preview value="@drawable/watch_face_preview" />
    <Category value="CATEGORY_EMPTY" />
    <AvailableInRetail value="true" />
    <MultipleInstancesAllowed value="true" />
    <Editable value="true" />
</WatchFaceInfo>

تمثّل الحقول في هذا الملف التفاصيل التالية:

Preview
تشير إلى العنصر القابل للرسم الذي يحتوي على صورة معاينة لخلفية شاشة الساعة.
Category

تحدّد هذه السمة فئة خلفية شاشة الساعة. يجب أن تكون سلسلة أو مرجعًا إلى سلسلة، مثل @string/ref_name. يمكن لكل شركة مصنّعة للأجهزة تحديد مجموعة فئات خلفيات شاشة الساعة الخاصة بها.

القيمة التلقائية: empty_category_meta، ما يؤدي إلى تجميع خلفية شاشة الساعة هذه مع خلفيات شاشة الساعة الأخرى التي تنتمي إلى "فئة فارغة" في أسفل عرض أداة اختيار خلفية شاشة الساعة.

AvailableInRetail

تُحدِّد ما إذا كان وجه الساعة متاحًا في وضع العرض التوضيحي لبائعي التجزئة على الجهاز. يجب أن تكون قيمة منطقية أو مرجعًا إلى قيمة منطقية، مثل @bool/watch_face_available_in_retail.

القيمة التلقائية: false

MultipleInstancesAllowed

توضّح هذه السمة ما إذا كان يمكن أن تتضمّن خلفية شاشة الساعة عدة عناصر مفضّلة. يجب أن تكون قيمة منطقية أو مرجعًا إلى قيمة منطقية، مثل @bool/watch_face_multiple_instances_allowed.

القيمة التلقائية: false

Editable

تُستخدَم لتحديد ما إذا كانت خلفية شاشة الساعة قابلة للتعديل، أي أنّها تتضمّن إعدادًا أو إضافة واحدة على الأقل غير ثابتة. يُستخدَم هذا الخيار لعرض زر تعديل أو إخفائه في قائمة الوجوه المفضّلة للساعة.

القيمة التلقائية: false

تحديد اسم خلفية شاشة الساعة

في ملف البيان الخاص بتطبيقك (AndroidManifest.xml)، اضبط السمة android:label على اسم خلفية شاشة الساعة:

<application android:label="@string/watch_face_name" >

تحديد تفاصيل خلفية شاشة الساعة

في ما يلي بنية مستند أساسي لخلفية شاشة WFF:

<WatchFace width="450" height="450">
  <Scene>
    <!-- Content to be rendered -->
  </Scene>
</WatchFace>

يوفّر نموذج "استوديو Android" مستندًا أساسيًا بتنسيق res/raw/watchface.xml. لإتاحة أشكال وأحجام شاشات مختلفة، عليك تحديد إمكانية استخدام أشكال وأحجام متعددة.

العنصر الجذر هو دائمًا WatchFace. يحدّد height وwidth مدى مساحة الإحداثيات التي سيتم استخدامها في خلفية شاشة الساعة، ويتم تغيير حجم خلفية شاشة الساعة لتناسب الجهاز الذي يتم استخدامها عليه، ولا يمثّل height وwidth وحدات البكسل الفعلية.

ينظِّم "تنسيق خلفية شاشة الساعة" عدة تفاصيل حول خلفية شاشة الساعة، وهي:

  • البيانات الوصفية، مثل الوقت وعدد الخطوات المعروضَين في صورة معاينة خلفية شاشة الساعة
  • إعدادات المستخدم، مثل مظاهر الألوان المختلفة لخلفية شاشة الساعة، والعناصر التي يمكن للمستخدم تفعيلها أو إيقافها، والاختيار من بين عدة عناصر يقدّم الإصدار 2 من "تنسيق خلفية شاشة الساعة" أنواعًا يمكن أن تظهر ضمن إعدادات المستخدم. يحدّد كل نوع إعدادًا مسبقًا للمستخدم، ويشير إلى نوع العناصر وتصميمها التي تظهر مع الوقت في خلفية شاشة الساعة. تسهّل عليك الإعدادات المُسبقة إنشاء مجموعات من العناصر التي تبدو جذابة. في تطبيق Wear OS المصاحب، تظهر للمستخدمين النُسخ المختلفة من خلفية شاشة الساعة في صف قابل للتمرير.
  • مشهد يحتوي على العناصر المرئية لخلفية شاشة الساعة تظهر العناصر الأقرب إلى نهاية المشهد فوق العناصر الأخرى، لذا يكون الترتيب النموذجي كما يلي:
    • عقارب الساعة العادية أو نص الساعة الرقمية
    • عناصر واجهة مستخدم تعرض معلومات إضافية، مثل يوم الأسبوع أو عدد خطوات المستخدم
    • رسومات أخرى توفّر مظهرًا جذابًا أو زينة لخلفية شاشة الساعة، مثل صورة لموقع تخييم
  • مجموعات العناصر التي تتيح لك تعديل عناصر متعددة في الوقت نفسه يمكنك إنشاء أشكال مختلفة من هذه المجموعات ضمن مشهد، ما يتيح لك إخفاء المحتوى أو تعديله بشكل انتقائي عندما يدخل النظام في وضع توفير الطاقة.

تكون السمات مكتوبة بشكل صارم ولها إرشادات بشأن التكرار والقيم الصالحة لتجنُّب معظم مصادر الأخطاء عند إنشاء خلفية شاشة.

تحديد أشكال خلفيات شاشة الساعة المتوافقة (اختياري)

لا تكون هذه الخطوة ضرورية إلا إذا كنت تريد توفير سلوك مختلف لأحجام مختلفة من خلفيات شاشة الساعة. يمكنك تخطّي هذه الخطوة إذا كنت تريد أن يتم تغيير حجم خلفية شاشة الساعة بما يتناسب مع حجم الساعة.

في دليل موارد res/xml في تطبيقك، حدِّد مجموعة أشكال خلفيات شاشة الساعة التي يتيحها تطبيقك في watch_face_shapes.xml:

<WatchFaces>
    <WatchFace shape="CIRCLE" width="300" height="300"
               file="@raw/watchface"/>
    <WatchFace shape="CIRCLE" width="450" height="450"
               file="@raw/watchface_large_circle"/>
<WatchFaces>

بعد ذلك، حدِّد مظهر خلفية شاشة الساعة وسلوكها لكل شكل من أشكال خلفيات شاشة الساعة. إذا لم تحدّد ملف أشكال، لن تحتاج سوى إلى ملف واحد، وهو watchface.xml.

باستخدام المثال الوارد في هذا القسم، ستكون ملفات XML الأولية كما يلي:

  • res/raw/watchface.xml
  • res/raw/watchface_large_circle.xml

تحديد ناشر خلفية شاشة الساعة (اختياري)

يمكنك اختياريًا في ملف بيان التطبيق تحديد سلسلة عشوائية يمكنك استخدامها لتحديد ناشر خلفية شاشة الساعة أو اسم الأداة وإصدارها اللذين تستخدمهما:

<application ...>
    ...
    <property
        android:name="com.google.wear.watchface.format.publisher"
        android:value="<var>{toolName}-{toolVersion}</var>" />
</application>

التحقّق من صحة خلفية شاشة الساعة وأدائها

أثناء عملية التطوير وقبل تحميل خلفية شاشة الساعة على Google Play، تأكَّد من خلوّها من أخطاء في بناء الجملة باستخدام ميزة التحقّق من صحة &quot;تنسيق خلفية شاشة الساعة&quot; المضمّنة في Android Studio. تعمل هذه الميزة تلقائيًا على إبراز الأخطاء في الرمز البرمجي وتتوافق مع الإصدارات.

عليك أيضًا التأكّد من أنّ خلفية شاشة الساعة تستوفي متطلبات استخدام الذاكرة من خلال تشغيل أداة حجم الذاكرة.

إنشاء حِزمة تطبيق خلفية شاشة الساعة

أسهل طريقة لإنشاء خلفية شاشة الساعة ونشرها هي من خلال &quot;استوديو Android&quot; الذي يتوافق مع إعدادات تشغيل خلفية شاشة الساعة. بعد النقر على الزر تشغيل، ينشر Android Studio خلفية شاشة الساعة على الجهاز أو المحاكي ويضبطها كخلفية شاشة الساعة النشطة.

نماذج لخلفيات شاشة الساعة

تتوفّر المزيد من نماذج مشاريع "تنسيق خلفية شاشة الساعة" على GitHub.