"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية اكتشاف النقرات الطويلة في تطبيقات Android OpenGL-ES؟

كيفية اكتشاف النقرات الطويلة في تطبيقات Android OpenGL-ES؟

تم النشر بتاريخ 2024-11-01
تصفح:362

How to Detect Long Clicks in Android OpenGL-ES Applications?

كيفية اكتشاف النقرات الطويلة في Android باستخدام OpenGL-ES

لاكتشاف متى يضغط المستخدم على السطح الذي يتم عرضه بواسطة OpenGL-ES التطبيق، عادةً ما يستخدم المطورون طريقة onTouchEvent (حدث MotionEvent). ومع ذلك، لا تحتوي هذه الطريقة على وظيفة مضمنة لاكتشاف النقرات الطويلة.

تتمثل إحدى الطرق في التسجيل في حدث ACTION_DOWN. بعد ذلك، في onTouchEvent، قم بجدولة Runnable ليتم تشغيله بعد تأخير زمني معين. إذا تم إلغاء Runnable قبل تشغيله، بسبب حدث ACTION_UP أو ACTION_MOVE، فهذا يشير إلى أن المستخدم لم يقم بنقرة طويلة.

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

استخدام GestureDetector

لاستخدام GestureDetector، اتبع الخطوات التالية:

  1. أنشئ مثيل GestureDetector.
  2. تجاوز طريقة onTouchEvent في نشاطك أو جزءك.
  3. في onTouchEvent، قم بتمرير حدث اللمس إلى مثيل GestureDetector باستخدام GestureDetector.onTouchEvent(event).
  4. قم بتسجيل OnGestureListener باستخدام GestureDetector لاكتشاف النقرات الطويلة.
فيما يلي مثال لاستخدام GestureDetector لاكتشاف النقرات الطويلة:

class MyActivity : AppCompatActivity() {

  private lateinit var gestureDetector: GestureDetector

  override fun onCreate(savedInstanceState: Bundle?) {
    super.onCreate(savedInstanceState)
    gestureDetector = GestureDetector(this, LongClickListener())
  }

  override fun onTouchEvent(event: MotionEvent): Boolean {
    gestureDetector.onTouchEvent(event)
    return super.onTouchEvent(event)
  }

  inner class LongClickListener : OnGestureListener {

    override fun onLongPress(e: MotionEvent?) {
      // Handle long click here.
    }

    // Implement other gesture methods as needed.
  }
}
باستخدام GestureDetector، يمكنك بسهولة اكتشاف النقرات الطويلة في تطبيقات OpenGL-ES.

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3