سؤال

أنا أعمل على تطبيق يحتوي على قماش مع مجموعة من الصور الصغيرة التي يمكن للمستخدم سحبها ، و "مربع" سوف يسحبه المستخدم من إنشاء كائنات صورة جديدة أو سحب صورة موجودة إليها ، وهي سوف يزيله.

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

شكرًا

هل كانت مفيدة؟

المحلول

ال رأي يحتوي الفصل في Android على onClickListener يمكنك استخدامه لاكتشاف عندما ينقر المستخدم على طريقة عرض. إذا قمت بتنفيذ "الصور" الخاصة بك (كما تسميها) كمسافات ، يمكنك ببساطة إضافة مستمع نقرة إلى كل للعثور على العرض الذي تم النقر عليه. أضف المستمع مثل هذا:

// Get a reference to the view from xml (or if you 
// have created it dynamically, just use that)
View imageView = findViewById(R.id.my_view);
imageView.setOnClickListener(new OnClickListener()
{

  @Override
  public void onClick(View v)
  {
    // Do stuff with view (the View v that is passed is the View that was touched)
    doStuff(v);  
  }
});

نصائح أخرى

يعتمد ذلك على مدى تعقيد واجهتك ، ولكن بشكل أساسي إذا تجاوزت onTouchEvent سيحصل هذا على الإحداثيات التي كنت تشير إليها.

من أجل العثور على ما تم لمسه ، دون أن يمر عبر كل كائن ، يمكنك العثور على طرق لتبسيط هذا ، مثل تقسيم الشاشة إلى 8 شبكات ، ومعرفة الشبكات (الشبكات) في كل كائن ، بحيث عندما تكون الشاشة عند الشاشة تم لمسه ثم يمكنك العثور على الكائنات التي قد تكون في تلك الشبكة ، وبالتالي سيكون لديك عدد أقل من العناصر التي يجب البحث عنها.

للحصول على إجابة موجزة حول كيفية الاستخدام onTouchEvent يمكنك النظر إلى:

http://androidforums.com/android-mames/210019-touch-event-image-made-canvas.html

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top