Ver la Versión Completa : ImageView evento al pulsar
Hola
Bueno pues necesito saber para una aplicación como puedo lanzar un método al pulsar un imageView y además para el procesamiento del metodo necesito saber las coordenadas XY en las que he pulsado el imageView, pero en principio no tengo ni idea de como hacerlo.
Saludos
kriogeN
04/08/12, 15:36:56
Con un OnTouchListener, el código sería más o menos así:
img.setOnTouchListener(new OnTouchListener() {
float x,y;
public boolean onTouch(View b, MotionEvent arg1) {
if( arg1.getAction() == MotionEvent.ACTION_DOWN) {
{
x = arg1.getX();
y = arg1.getY();
}
perfecto, muchisimas gracias.
Ahora necesito lo mismo pero al arrastrar en vez de al pulsar en el ImageView y necesito conocer donde pulso primero y donde acabo al arrastrar, imagino que es algo parecido al evento de tocar, pero no se como buscar como se hace.
Saludos
Arasthel
15/08/12, 13:34:29
Puedes modificar el código anterior:
img.setOnTouchListener(new OnTouchListener() {
float desdeX,desdeY,hastaX, hastaY;
public boolean onTouch(View b, MotionEvent arg1) {
if( arg1.getAction() == MotionEvent.ACTION_DOWN) {
desdeX = arg1.getX();
desdeY = arg1.getY();
} else if(arg1.etAction() == MotionEvent.ACTION_UP) {
// este evento se usa para buscar cuándo se ha dejado de pulsar
hastaX = arg1.getX();
hastaY = arg1.getY();
}
}
}
En cuanto al efecto de arrastrar el ImageView no sé exactamente cómo hacerlo, la verdad. Si alguien diese un ejemplo me sería útil a mí también.
Un saludo.
En cuanto al efecto, ¿te refieres a que con tu código puedes calcularlo, pero no se ve que la imagen haya sido arrastrada?
kriogeN
16/08/12, 18:52:47
En cuanto al efecto, ¿te refieres a que con tu código puedes calcularlo, pero no se ve que la imagen haya sido arrastrada?
Si, con ese código no puedes saber que el dedo se está moviendo, sólo donde lo pulssas y donde lo sueltas.
Para ver el efecto de "arrastrado" tendrás que controlar también el caso MotionEvent.ACTION_MOVE.
Estoy probando este codigo y no me funciona, al dejar de pulsar no entra en el if del ACTION_UP, ¿no habra algo mal?
Puedes modificar el código anterior:
img.setOnTouchListener(new OnTouchListener() {
float desdeX,desdeY,hastaX, hastaY;
public boolean onTouch(View b, MotionEvent arg1) {
if( arg1.getAction() == MotionEvent.ACTION_DOWN) {
desdeX = arg1.getX();
desdeY = arg1.getY();
} else if(arg1.etAction() == MotionEvent.ACTION_UP) {
// este evento se usa para buscar cuándo se ha dejado de pulsar
hastaX = arg1.getX();
hastaY = arg1.getY();
}
}
}
En cuanto al efecto de arrastrar el ImageView no sé exactamente cómo hacerlo, la verdad. Si alguien diese un ejemplo me sería útil a mí también.
Un saludo.
mocelet
18/08/12, 18:02:03
Si no devuelves true en el onTouch no te va a avisar de ningún evento posterior al ACTION_DOWN.
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.