Spanish [SOLUCIONADO]¿Por qué no me funciona Touch?

netklamath

Member
Licensed User
Longtime User
Buenas, por aqui estoy de nuevo pidiendo ayuda. Necesito que una imagen se haga invisible al pulsarla, pero por mas que veo por internet y por este foro, no entiendo por qué no me funciona el codigo a mi. Se supone que se hace así:

Sub botonconfig_Touch (Action As Int, X As Float, Y As Float)
Select Action
Case Activity.ACTION_DOWN
botonconfig.Visible=False
End Select
End Sub

"botonconfig" es un imageview que lo tengo declarado y cargado con una imagen, y el programa me lo muestra correctamente, pero no sé por qué a mi las funciones Touch no me las detecta. ¿Sabeis por qué?
 

netklamath

Member
Licensed User
Longtime User
Ya lo he conseguido. La unica manera ha sido descargandome una libreria que se llama "Gestures" y con eso ya si puedo hacerlo en cualquier sitio. ;)
 

Descartex

Well-Known Member
Licensed User
Longtime User
En vez del evento Touch, deberías haberlo hecho con el evento Click del ImageView...
 

netklamath

Member
Licensed User
Longtime User
En vez del evento Touch, deberías haberlo hecho con el evento Click del ImageView...

PEro lo que queria hacer es que mientras este pulsado se cambie la imagen y cuando quite el dedo vuelva a su imagen primera.

QUizas se pueda hacer con el click como dices pero no se. Si sabes como se hace y me puedes poner un ejemplo te lo agradeceria jeje.

OTra consulta aprovechando tu amabilidad:

Mi aplicacion tiene varios archivos png y me gustaria saber si hay alguna manera de que esos archivos no se vean ya que me parece un poco "cutre" que te metas en la carpeta de la aplicacion "files" y puedas ver unos fondos que tengo puestos a imagenes y botones para que cambien. No se, lo veo cutre que cualquiera pueda verlos incluso que las galerias de los telefonos te las muestren al buscar fotos nuevas. No se si me he explicado bien.

Un saludo y graciias.
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola:

Como decia Jack el destripador "vayamos por partes" :D

no entiendo por qué no me funciona el codigo a mi. Se supone que se hace así:

Sub botonconfig_Touch (Action As Int, X As Float, Y As Float)
No te funciona por que el objeto Button no tiene evento Touch, solo Click y LongClick, asi que aunque tu escribas codigo ese evento no funcionará, por que no existe.
Haz una prueba rápida, empieza a escribir Sub y cuando pulses el espacio te saldrá la etiqueta de pulse tab para insertar la declaración del evento. Vas hasta Button y al hacer Enter te saldrán los eventos, y veras que solo hay dos.


Mi aplicacion tiene varios archivos png y me gustaria saber si hay alguna manera de que esos archivos no se vean ya que me parece un poco "cutre" que te metas en la carpeta de la aplicacion "files" y puedas ver unos fondos que tengo puestos a imagenes y botones para que cambien. No se, lo veo cutre que cualquiera pueda verlos incluso que las galerias de los telefonos te las muestren al buscar fotos nuevas. No se si me he explicado bien.
No es la primera vez que cuando alguien hace dentro de un hilo una pregunta que no tiene nada que ver con ese hilo, le pido que por favor abra otro, no es por fastidiar, es por que de esa forma el resto del foro verá la pregunta, y primero tendrás a mas gente que te pueda dar una respuesta, y si alguien da una respuesta otro se puede beneficiar de ella, que al fin y al cabo ese es el cometido del foro, que entre todos nos ayudemos. Y tu pregunta tiene varias respuesta o "soluciones"

Con respecto a tu solución, es correcta empleando otra libreria, pero si quieres puedes hacerlo sin emplear ninguna, si no con los elementos que tienes, de esa forma no "engordarás" tu proyecto añadiendo una libreria mas. Por otro lado tambien con la libreria Reflection (que se suele utilizar mucho) con un SetOnKeyListener podrias hacerlo.

La solucion sencilla es capturar ese evento con un panel, que si te permite el evento touch, algo así:

B4X:
PanelBoton.Initialize("PanelB1")
PanelBoton.Color = Colors.ARGB(0,0,0,0) ' el primer cero lo hace transparente
Activity.AddView(PanelBoton,boton1.Left,boton1.Top,boton1.Width,boton1.Height) ' le pones los valores de tu boton

' -----------------------------------------------

Sub PanelB1_Touch (Action As Int, X As Float, Y As Float)
   
   Select Action

     Case Activity.ACTION_DOWN
       ' poner imagen 1
     Case Activity.ACTION_UP
       ' poner imagen 2
   
  End Select

   
   
End Sub

Cuenta que el evento Click y LongClick del boton lo perderás, ya que lo capturó el panel que está encima, si lo necesitas crealo con el mismo nombre del evento del touch del panel (en este ejemplo lo llamé PanelB1).


Saludos
 

netklamath

Member
Licensed User
Longtime User
BGsoft muchisimas gracias. Probare eso que dices con el panel. Y respecto a la otra duda, precisamente no queria abrir tantos hilos, pero si hay que hacerlo asi ya lo se para la siguiente duda. Muchas gracias
 

bgsoft

Well-Known Member
Licensed User
Longtime User
Hola netklamath

No es una cuestion de no abrir hilos, es simplemente que si alguien busca una solución a un problema que tiene y este está dentro de un hilo que nada tiene que ver nunca lo encontrará, y por otro lado el que hace esa nueva pregunta tendrá menos posibilidades que alguien le responda puesto que la cabecera del post no pondrá nada con respecto a la segunda pregunta. Yo esto solo te lo comenté como uno mas de este foro, no soy nadie para imponer nada, es solo una sugerencia.

Hace tiempo creamos un post que se llama Mejorar el foro “Spanish Forum"
https://www.b4x.com/android/forum/threads/mejorar-el-foro-“spanish-forum”.39799/
, aqui cada uno ha expuesto ideas para mejorarlo, entre otras, cuando alguien hace una pregunta y se soluciona le añade al título [SOLUCIONADO], de esta forma agilizamos la búsqueda a un problema que tengamos, por que si vemos que se solucionó entraremos a ver la respuesta, de la otra forma habria que ir entrado y verificando. Si pudieras hacer esto en tus post te lo agradeceriamos todos.

Saludos
 

bgsoft

Well-Known Member
Licensed User
Longtime User
PErfecto. Lo hare en los post que sigo teniendolos activos. Gracias y disculpas
No hay nada que disculpar, nadie nació aprendido ;) , gracias a ti por colaborar en el foro.

Saludos
 
Top