Home Menu

Menu



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  
Viejo 05/02/13, 12:41:15
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Pulsacion Larga

Buenas!

Estoy teniendo problemas con "onLongClick" a ver si me podeis echar un cable.

Tengo una serie de imagenes (Bitmap) sobre un canvas, este canvas tiene implementado onTouchEvent de manera que si pulso encima de la imagen y la muevo esta se mueve, Lo que me gustaría hacer ahora es que si dejo el dedo encima de la imagen un par de segundos o los que sean (una pulsación larga) me abra un menu, este menu ya lo tengo implementado, solo me queda saber como puedo hacer que la imagen detecte el evento de pulsación larga

Gracias por adelantado.
Responder Con Cita


  #2  
Viejo 05/02/13, 19:34:39
Avatar de set92
set92 set92 no está en línea
Miembro del foro
Mensajes: 468
 
Fecha de registro: jun 2012
Mensajes: 468
Modelo de smartphone: samsung
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
segun veo en este video simplemente es implementar un setonclicklistener y luego te aparece el metodo de onlongclick y ahi dentro tienes que poner que cosas quieres que se haga, en tu caso el menu.
Responder Con Cita
  #3  
Viejo 06/02/13, 09:29:01
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
Gracias por la respuesta, pero a un Bitmap no me deja asignarle onLongClick es decir tengo esto:

Bitmap bmp=BitmapFactory.decodeResource(getResources(), R.drawable.img1);
que es lo que pinto en mi canvas.
y lo que no puedo hacer es bmp.setOnLongClick(....);

¿Alguna Idea?
Responder Con Cita
  #4  
Viejo 06/02/13, 10:43:22
Avatar de set92
set92 set92 no está en línea
Miembro del foro
Mensajes: 468
 
Fecha de registro: jun 2012
Mensajes: 468
Modelo de smartphone: samsung
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Tienes razon, pues salvo que alguien te diga el modo correcto a mi solo se me ocurre ahora mismo comprobar que el usuario pulsa una X y una Y, y como me imagino que tu imagen estara dentro de un rectangulo para el tema de colisiones que uses el metodo rectangulo.contains(x, y); , donde x e y sean los valores que ha pulsado el usuario recojidos en el metodo de ontouchevent al pulsar, hasta aqui seria una pulsacion normal, y para una pulsacion larga seria hacerle un tipo contador y que si mantiene pulsado 3 segundos le aparece el menu.

El tema es el contador que no se muy bien como podrias hacerlo pero creo que long time = System.currentTimeMillis(); te devuelve el tiempo actual en milisegundos, y si haces un if al de un rato volviendo a cojer la ahora actual y restandosela a la anterior y que cuando sea 3000 te aparezca el menu, algo asi no deberia funcionar? Aun asi haber si viene alguien que sepa como funciona el onlongclick aunque no se si funcionara si la clase no hereda de activity o view
Responder Con Cita
  #5  
Viejo 13/02/13, 10:22:00
Avatar de pablogarcia013
pablogarcia013 pablogarcia013 no está en línea
Miembro del foro
Mensajes: 148
 
Fecha de registro: ene 2013
Localización: Madrid
Mensajes: 148
Modelo de smartphone: Samgung Galaxy s2
Tu operador: Orange
Mencionado: 0 comentarios
Tagged: 0 hilos
No he tenido tiempo para probarlo hasta ahora y si que me sirve, pero me funciona a medias,
tengo lo siguiente:
Código:
case MotionEvent.ACTION_DOWN:
Timer timer=new Timer();
      timer.schedule(new TimerTask(){
	public void run(){
	  ti=ti+1;    
	}
     },1,10000);
     if(this.ti>=1){
      	 this.mostrarMenuIzq();
}
break;
pero esto no me lo muestra, si pongo en el ACTION_UP el if(this.ti>=2).... si me lo muestra cuando recibe el evento de levantar el dedo. alguna idea??

Gracias!
Responder Con Cita
  #6  
Viejo 15/02/13, 12:31:02
Avatar de set92
set92 set92 no está en línea
Miembro del foro
Mensajes: 468
 
Fecha de registro: jun 2012
Mensajes: 468
Modelo de smartphone: samsung
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Pues nunca lo he llegado a hacer pero la logica me dice que solo entra en ese switch/if una sola vez, la vez que pulsas, y como la primera vez que pulsas es cuando se pone en ejecuccion el contador entonces al pulsar tu ya no hace mas porque ya ha entrado una vez, ha puesto en marcha el contador, ha mirado si el condicional era true, y como era false ha seguido para delante y no se ha vuelto ha ejecutar ese switch, me imagino que en la segunda pulsacion igual si que entraria en el if y por lo tanto mostraria el menu.

Soluciones...pues el timer que empiece fuera del action_down, es decir en el ontouchevent() pero sin estar dentro del switch y sino la parte del if que sea mayor que 1 ponla fuera del ontouch que igual esta hasta mejor, lo unico que como tiene que estar todo el rato comprobando si se ha cumplido no se en que metodo lo podrias poner...se me ocurre hacer un hilo y con un bucle infinito que lo este comprobando todo el rato pero esto en tema de recursos no es muy correcto tener un hilo solo para eso.
Responder Con Cita
Respuesta

Estás aquí
Regresar   HTCMania > Todo sobre Android > Programación y Desarrollo para Android


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 12:21:38 (GMT +2)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007