إنشاء وجه ساعه تفاعلي

الإعلانات

وجه ساعه تفاعلي

 

 

إنشاء وجه ساعه تفاعلي

يمكن للمستخدم التفاعل مع وجه الساعة بعدة طرق. على سبيل المثال، يمكن للمستخدم النقر على وجه الساعة..

لمعرفة الأغنية التي يتم تشغيلها حالياً، أو لرؤية جدول أعمال اليوم. يسمح نظام تشغيل الساعات من قوقل لأوجه الشاشة..

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

اقرأ المصادر التالية:

أوجه الساعة التفاعليه
نموذج لوجه الساعه
كود إختبار لإضافة التعقيدات على وجه الساعة

يعلمك هذا الدرس كيفية تنفيذ وجه ساعة تفاعلي، من خلال إنشاء نمط وجه الساعة أولاً، ثم تنفيذ التعامل مع الإيماءات.

 

ملاحظة: قبل البدء في العمل على تطوير وجه الساعة التفاعلية، يجب أن تتأكد من قراءة أوجه الساعة التفاعليه.

 

 

 

 

 

التعامل مع أحداث النقر


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

يوضح المثال التالي كيفية القيام بذلك:

KOTLIN

setWatchFaceStyle(WatchFaceStyle.Builder(service)
        .setAcceptsTapEvents(true)
        // other style customizations
        .build())

 

JAVA

setWatchFaceStyle(new WatchFaceStyle.Builder(service)
        .setAcceptsTapEvents(true)
        // other style customizations
        .build());

 

 

عندما يكتشف النظام نقرة على وجه الساعة، يقوم بتشغيل الداله ()WatchFaceService.Engine.onTapCommand .

تجاوز هذه الداله في تنفيذك لـ WatchFaceService.Engineto يبدء الإجراء الذي ترغب في تنفيذه، مثل عرض تفاصيل عدد الخطوات..

أو تغيير مظهر “ثيم” وجه الساعة. يعرض مقتطف الكود في التعامل مع الإيماءات مثالاً على تنفيذ مشابه.

 

 

 

 

 

 

إنشاء وجه ساعه تفاعلي

 

التعامل مع الإيماءات


لتوفير تجربة متناسقة للمستخدم، يحتفظ النظام بإيماءات مثل السحب والضغط لمدة طويلة على عناصر واجهة المستخدم للنظام.

لذا، لا يقوم النظام، بإرسال أحداث اللمس الأولية إلى وجه الساعة. بدلاً من ذلك، يقوم النظام بإعادة توجيه أوامر معينة إلى الدالة ()onTapCommand .

يرسل النظام الأمر الأول، TAP_TYPE_TOUCH ، عندما يلمس المستخدم الشاشة أولاً. يتيح لك هذا الحدث تقديم ملاحظات مرئية للمستخدم عند اللمس.

يجب ألا يطلق تطبيقك واجهة المستخدم عند تشغيل هذا الحدث. يؤدي تشغيل واجهة المستخدم إلى..

منع أحداث السحب من فتح مشغّل التطبيقات، ظلال الإعدادات “يظهر أثناء السحب أعلى الشاشه”، وبث الإشعارات.

قبل إرسال الأمر التالي، يحكم النظام ما إذا كان الإتصال عبارة عن نقرة واحدة أم لا، وهي الإيماءة الوحيدة المسموح بها.

إذا رفع المستخدم إصبعه فوراً، يحدد النظام حدوث نقرة واحدة، ومن ثم يتابع الحدث TAP_TYPE_TAP.

إذا لم يرفع المستخدم إصبعه على الفور، فإن النظام يتابع الحدث TAP_TYPE_TOUCH_CANCEL.

بمجرد أن يقوم المستخدم بتشغيل حدث TAP_TYPE_TOUCH_CANCEL ، فلن يتمكن من تشغيل حدث TAP_TYPE_TAP حتى يقوم بتكوين إتصال جديد مع الشاشة.

 

يوضح لك المثال التالي كيفية تنفيذ أحداث النقر على وجه الساعة:

KOTLIN

override fun onTapCommand(@TapType tapType: Int, x: Int, y: Int, eventTime: Long) {
    when (tapType) {
        WatchFaceService.TAP_TYPE_TAP -> {
            hideTapHighlight()
            if (withinTapRegion(x, y)) {
                // Implement the tap action
                // (e.g. show detailed step count)
                onWatchFaceTap()
            }
        }

        WatchFaceService.TAP_TYPE_TOUCH ->
            if (withinTapRegion(x, y)) {
                // Provide visual feedback of touch event
                startTapHighlight(x, y, eventTime)
            }

        WatchFaceService.TAP_TYPE_TOUCH_CANCEL -> hideTapHighlight()

        else -> super.onTapCommand(tapType, x, y, eventTime)
    }
}

 

JAVA

@Override
public void onTapCommand(
       @TapType int tapType, int x, int y, long eventTime) {
    switch (tapType) {
        case WatchFaceService.TAP_TYPE_TAP:
            hideTapHighlight();
            if (withinTapRegion(x, y)) {
                // Implement the tap action
                // (e.g. show detailed step count)
                onWatchFaceTap();
            }
            break;

        case WatchFaceService.TAP_TYPE_TOUCH:
            if (withinTapRegion(x, y)) {
                // Provide visual feedback of touch event
                startTapHighlight(x, y, eventTime);
            }
            break;

        case WatchFaceService.TAP_TYPE_TOUCH_CANCEL:
            hideTapHighlight();
            break;

        default:
            super.onTapCommand(tapType, x, y, eventTime);
            break;
    }
}

 

 

في هذا المثال، يحدد التطبيق نوع الحدث الذي يحدث، ويستجيب وفقاً لذلك. إذا كان الحدث هو إتصال أولي بأصبع المستخدم..

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

إذا كان الحدث هو إتصال لفترات طويلة بواسطة الإصبع، فلن يفعل التطبيق شيئاً.

 


للإطلاع على المقال باللغة الإنجليزية أضغط هنا.

الإعلانات