|
||
|
|
|
|||||||
| Avisos |
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
![]() |
|
|
Herramientas |
|
#1
|
||||
|
||||
|
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 |
|
|
|
#2
|
||||
|
||||
|
Con un OnTouchListener, el código sería más o menos así:
Código:
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();
}
|
| Gracias de parte de: | ||
|
#3
|
||||
|
||||
|
perfecto, muchisimas gracias.
|
|
#4
|
||||
|
||||
|
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 |
|
#5
|
||||
|
||||
|
Puedes modificar el código anterior:
Código:
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();
}
}
}
Un saludo. |
|
#6
|
||||
|
||||
|
En cuanto al efecto, ¿te refieres a que con tu código puedes calcularlo, pero no se ve que la imagen haya sido arrastrada?
|
|
#7
|
||||
|
||||
|
Para ver el efecto de "arrastrado" tendrás que controlar también el caso MotionEvent.ACTION_MOVE. |
|
#8
|
||||
|
||||
|
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:
Código:
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();
}
}
}
Un saludo. ![]() |
|
#9
|
||||
|
||||
|
Si no devuelves true en el onTouch no te va a avisar de ningún evento posterior al ACTION_DOWN.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
![]() |
Estás aquí
|
||||||
|
||||||