سؤال

لقد استخدمت هذا البرنامج التعليمي http://mobiforge.com/developing/story/using-google-maps-android لعرض عرض الخريطة وقم بتعيين حدث OnTouch لعرض رسالة توست (خط العرض/خط الطول) عندما أنقر على منطقة معينة. الآن مشكلتي هي أن رسالة الخبز المحمص يتم عرضها في اللحظة التي أتطرق فيها إلى الشاشة حتى لو كانت تنقل الخريطة؟ أريد عرض الخبز المحمص فقط إذا كانت نقطة اللمس ونقطة اللمس هي نفسها. كيف يمكنني تنفيذ ذلك؟

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

المحلول

تحقق مما إذا تم تعيين بت الحركة في حركة

if(event.getAction() & MotionEvent.ACTION_MOVE == MotionEvent.ACTION_MOVE)

نصائح أخرى

هل هذه هي الطريقة الصحيحة للقيام بذلك؟ أنا متأكد من أن هناك طريقة أفضل.

if (event.getAction() == 0) {                
    touchX = (int) event.getX();
    touchY = (int) event.getY();
}
if(event.getAction() == 1) {
  if(event.getX() == touchX && event.getY()== touchY){
    GeoPoint p = mapView.getProjection().fromPixels((int) event.getX(), (int)event.getY());
       Toast.makeText(getBaseContext(), 
         p.getLatitudeE6() / 1E6 + "," + 
         p.getLongitudeE6() /1E6 , 
         Toast.LENGTH_SHORT).show();
    }
}

لقد نجح هذا الأمر بالنسبة لي ، عندما أضغط لأسفل ولا يحدث أي شيء ، ولكن إذا ضغطت على الأسفل وأصدرته! تماما مثل سلوك onClickListener.

  public boolean onTouch(View v, MotionEvent event) {
      if (event.getAction() == MotionEvent.ACTION_UP){
         // yer Code here ...........
      }

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