2010-11-17 13 views
15

Estoy desarrollando una aplicación. En mi aplicación, estoy visualizando imágenes usando ImageView desde url usando xml parsing. Quiero mostrar la imagen de acercamiento cuando toco dos veces la imagen, luego otra vez tocando sobre la imagen de zoom, quiero restablecer la imagen. ¿Cómo implementar en imagen usando Android?¿Cómo implementar el oyente táctil en la imagen?

Respuesta

43

Así es como implementa un oyente táctil en Android.

 yourImageView.setOnTouchListener(new OnTouchListener() 
     { 

      @Override 
      public boolean onTouch(View v, MotionEvent event) 
      { 
       return false; 
      } 
     }); 

Para detectar dobles grifos utiliza GestureDetector así:

1) Haga su propia GestureDetector, derivado de SimpleOnGestureListener y anulan los métodos que le interesa (ver documentos de Google en SimpleOnGestureListener de los métodos exactos puede anular, he hecho doble toque aquí):

class MyGestureDetector extends GestureDetector.SimpleOnGestureListener 
{ 

@Override 
public boolean onDoubleTapEvent(MotionEvent e) 
{ 
    Log.i("Taghere..", "onDoubleTapEvent"); 
    return true; 
    } 
} 

2) Cree una instancia de su detector de gestos. Estoy haciendo un miembro variable e instanciando en onCreate.

private GestureDetector mDetector; 

    mDetector = new GestureDetector(this, new MyGestureDetector()); 

3) Configuración de un oyente táctil de su imageview y encaminar los mensajes a su detector gesto:

ImageView iv = (ImageView)findViewById(R.id.yourimageviewid); 
iv.setOnTouchListener(new OnTouchListener(){ 

@Override 
public boolean onTouch(View v, MotionEvent event) 
{ 
    mDetector.onTouchEvent(event); 
    return true; 
}}); 

que anularía los métodos en MyGestureDetector y conectarse a LogCat que estoy haciendo el doble toque para tener una idea de cómo funciona esto.

+0

@ rreeverb, quiero determinar "toque de usuario toque doble o solo toque en la imagen", ¿cómo hago? – JohnNick

+0

Hmm, realmente no lo sé con certeza, lo siento. Puede mirar en GestureDetector.OnGestureListener. Si todo lo demás falla, puede obtener el momento en que ocurrió el toque y compararlo con la hora del último toque y ver si cae dentro del tiempo de 'doble toque'. –

+0

GestureDetector.OnDoubleTapListener en realidad –

Cuestiones relacionadas