2013-01-04 8 views
5

Devo implementare la funzionalità quando rimuovo il dito dall'elemento. Quindi ho bisogno di un evento per questo.Evento di tocco: quando si rimuove il dito dall'articolo

***Scenario:*** 

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

Voglio che il callback di evento al punto 2.

Se qualche evento predefinito esiste prega di suggerire il nome.

risposta

9

Ok. Quando si tocca schermo e rimuovere i vostri eventi delle dita chiamano:

  1. ACTION_DOWN - la prima volta che tocco
  2. ACTION_MOVE - quando ci si sposta il dito sullo schermo
  3. ACTION_UP - quando si rimuove il tuo dito dallo schermo

Buona fortuna!

+0

grazie, questo è utile ... –

+0

grazie, questo è utile ... –

6

Per tale scenario, è possibile implementare OnTouchListener per 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

Si noti che se si desidera ottenere MotionEvent.ACTION_UP dopo MotionEvent.ACTION_DOWN, si dovrebbe tornare vero su 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; 
    } 
}