android - studio - que hacer cuando el tactil del celular no funciona
Método de liberación táctil en Android (4)
Estoy tratando de capturar el evento TouchRelease
en Android. He visto que event.getAction()
devuelve el tipo de acción. Pero dentro de onTouchEvent
siempre da la acción ACTION_DOWN
.
¿Sabes cómo capturar el evento de lanzamiento táctil?
public boolean onTouchEvent(MotionEvent event) {
Log.d(TAG,""+event.getAction());
return super.onTouchEvent(event);
}
Puedes usar ACTION_UP
: http://developer.android.com/reference/android/view/MotionEvent.html#ACTION_UP
View view = new View();
view.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");
}
return true;
}
});
Tuve el mismo problema con la clase SurfaceView
. Así es como lo arreglé: después de habilitar la propiedad en la que se puede hacer clic en su vista (a través de setLongClickable (true)), debería funcionar.
public boolean onTouchEvent(MotionEvent event) {
Log.d(TAG,""+event.getAction());
return true; // Required for recieving subsequent events (ACTION_MOVE, ACTION_UP)
}
view.setOnTouchListener(new OnTouchListener () {
public boolean onTouch(View view, MotionEvent event) {
if(event.getAction() == MotionEvent.ACTION_UP) {
// release
return false;
} else if(event.getAction() == MotionEvent.ACTION_DOWN) {
// pressed
return true;
}
return super.onTouchEvent(event);
}