Implementación de escuchas de OnTap

¿Tengo una duda que está en el oyente del golpecito implementado en un botón particular, o una visión de la imagen o una visión? porque los sitios que he navegado sólo muestra para todo el diseño y quiero que mi acción se realice en el toque de una vista. por favor ayuda. Gracias.

Cualquier vista se puede configurar con un onClickListener() que forma parte de la clase view. La forma más sencilla de hacerlo es configurar las referencias a su vista en el método onCreate() . A continuación se muestra un ejemplo para una vista de imagen:

 ImageView iv = (ImageView) findViewByID(R.id.example); iv.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // Do what you need to do on click .... } }); 

ACTUALIZACIÓN: DOBLE TAP

A continuación se muestra una actividad de ejemplo que implementa la detección básica de doble toque en una vista de imagen:

 import android.app.Activity; import android.os.Bundle; import android.os.SystemClock; import android.view.MotionEvent; import android.view.View; import android.widget.ImageView; import android.widget.Toast; public class DoubleTapActivity extends Activity { //Set the double tap delay in milliseconds protected static final long DOUBLE_CLICK_MAX_DELAY = 1000L; private ImageView iView; private long thisTime = 0; private long prevTime = 0; private boolean firstTap = true; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); iView = (ImageView)findViewById(R.id.iView); iView.setOnTouchListener( new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // TODO Auto-generated method stub if(firstTap){ thisTime = SystemClock.uptimeMillis(); firstTap = false; } else { prevTime = thisTime; thisTime = SystemClock.uptimeMillis(); //Check that thisTime is greater than prevTime //just incase system clock reset to zero if(thisTime > prevTime){ //Check if times are within our max delay if((thisTime - prevTime) <= DOUBLE_CLICK_MAX_DELAY){ //We have detected a double tap! Toast.makeText(DoubleTapActivity.this, "DOUBLE TAP DETECTED!!!", Toast.LENGTH_LONG).show(); //PUT YOUR LOGIC HERE!!!! } else { //Otherwise Reset firstTap firstTap = true; } } else { firstTap = true; } } return false; } }); } } 

Principalmente para detectar el evento de toque que tiene que implementar GestureDetector.OnGestureListener en su actividad. Puede realizar una acción utilizando el onSingleTapUp(MotionEvent e) de GestureDetector.OnGestureListener .

Generalmente para el control Button, usamos como

myButton.setOnClickListener(new OnClickListener() {});

u otros clickListners y tap eventos se utilizan para ImageView o cualquier otra vista previa.

@Override public boolean onTouchEvent (evento MotionEvent) {

  // on action down do your work... return super.onTouchEvent(event); } 

Añadir android:onClick="tapEvent" en su diseño que desea tomar el clic. Al cambiar el valor MAX_TAP_COUNT , puede utilizar cualquier número de taps.

 private long thisTime = 0; private long prevTime = 0; private int tapCount = 0; private static final int MAX_TAP_COUNT = 5; protected static final long DOUBLE_CLICK_MAX_DELAY = 500; public void tapEvent(View v){ if (SystemClock.uptimeMillis() > thisTime) { if ((SystemClock.uptimeMillis() - thisTime) > DOUBLE_CLICK_MAX_DELAY * MAX_TAP_COUNT) { Log.d(TAG, "touch event " + "resetting tapCount = 0"); tapCount = 0; } if (tapCount()) { //DO YOUR LOGIC HERE } } } private Boolean tapCount(){ if (tapCount == 0) { thisTime = SystemClock.uptimeMillis(); tapCount++; } else if (tapCount < (MAX_TAP_COUNT-1)) { tapCount++; } else { prevTime = thisTime; thisTime = SystemClock.uptimeMillis(); //just incase system clock reset to zero if (thisTime > prevTime) { //Check if times are within our max delay if ((thisTime - prevTime) <= DOUBLE_CLICK_MAX_DELAY * MAX_TAP_COUNT) { //We have detected a multiple continuous tap! //Once receive multiple tap, reset tap count to zero for consider next tap as new start tapCount = 0; return true; } else { //Otherwise Reset tapCount tapCount = 0; } } else { tapCount = 0; } } return false; } 
FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.