2013-01-04 19 views
5

Muszę zaimplementować funkcjonalność po zdjęciu palca z elementu. Więc potrzebuję jakiegoś wydarzenia.Zdarzenie dotykowe: po usunięciu palca z elementu

***Scenario:*** 

1. Touch the image view using finger. 
2. Remove the finger. 
3. Now implement the functionality. 

chcę wywołania zwrotnego zdarzenia w etapie 2.

Jeśli istnieje kilka predefiniowanych zdarzeń proszę sugerować nazwa.

Odpowiedz

9

Ok. Po dotknięciu ekranu i usunąć zdarzenia palec zadzwonić:

  1. ACTION_DOWN - przy pierwszym dotyku
  2. ACTION_MOVE - kiedy jesteś w ruchu palca na ekranie
  3. ACTION_UP - po wyjęciu Twój palec z ekranu

Powodzenia!

+0

dziękuję, to jest pomocne ... –

+0

dziękuję, to jest pomocne ... –

6

W tym scenariuszu można wdrożyć OnTouchListener dla ImageView.

yourImageView.setOnTouchListener(new OnTouchListener() { 
    public boolean onTouch(View view, MotionEvent event) { 

    if (event.getAction() == android.view.MotionEvent.ACTION_DOWN) { 
     Log.d("TouchTest", "Touch down"); 
    } 
    else if (event.getAction() == android.view.MotionEvent.ACTION_UP) { 
     Log.d("TouchTest", "Touch up"); 
    } 
    } 
} 
+0

Pamiętaj, że jeśli chcesz dostać MotionEvent.ACTION_UP po MotionEvent.ACTION_DOWN, należy wrócić na prawdziwą ACTION_DOWN –

0
public class TestTouchEvents extends Activity implements OnTouchListener { 
    ImageView imageView; 
    Bitmap bitmap; 
    Canvas canvas; 
    Paint paint; 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    imageView = (ImageView) this.findViewById(R.id.ImageView); 

    Display currentDisplay = getWindowManager().getDefaultDisplay(); 
    float dw = currentDisplay.getWidth(); 
    float dh = currentDisplay.getHeight(); 

    bitmap = Bitmap.createBitmap((int) dw, (int) dh,Bitmap.Config.ARGB_8888); 
    canvas = new Canvas(bitmap); 
    paint = new Paint(); 
    paint.setColor(Color.GREEN); 
    imageView.setImageBitmap(bitmap); 
    imageView.setOnTouchListener(this); 
    } 

    public boolean onTouch(View v, MotionEvent event) { 
    int action = event.getAction(); 

    switch (action) { 
    case MotionEvent.ACTION_DOWN: 
     // Do Something 
     Log.d("Touch", "Touch down"); 
     break; 

    case MotionEvent.ACTION_MOVE: 

     // Do Something 
     Log.d("Touch", "Touch move"); 
     //imageView.invalidate(); 

     break; 

    case MotionEvent.ACTION_UP: 

     // Do Something 
     Log.d("Touch", "Touch up"); 
     //imageView.invalidate(); 
     break; 

    case MotionEvent.ACTION_CANCEL: 

     Log.d("Touch", "Touch cancel"); 
     break; 

    default: 
     break; 
    } 
    return true; 
    } 
} 
Powiązane problemy