Ver la Versión Completa : [ CONSULTA ] Coordenadas con Zoom
luislopez12
14/07/13, 12:29:16
Hola a todos, estoy desarrollando un juego en el que necesito saber las coordenadas donde pulsas en una imageview pero me han surgido dos problemas:
1.Dependiendo de la resolución del móvil donde se ejecute,estas coordenadas cambian, pero necesito que siempre sean las mismas.
2.Quiero que al hacer zoom sobre la imageview si pinchas en el mismo sitio las coordenadas sean las mismas que sin el zoom.
Tampoco he conseguido hacer zoom sobre la imageview con los dedos. ¿Alguien sabría como ayudarme? Gracias ;)
kriogeN
14/07/13, 13:05:43
Supongo que estás poniendo el ImageView a pantalla completa y en modo fitXY, porque si no no tendrías problemas con las distintas resoluciones.
1. Para hacer esto existen millones de formas, por ejemplo puedes calcular el % de X y el % de Y en la pantalla, y esto lo aplicas sobre la imagen. Obviamente tendrás que usar double o float. El % de X es el punto X (cuando hablo de % me refiero de 0 a 1, donde 1 es el 100%) donde pulsas en el MotionEvent Down dividido entre el getWidth() del ImageView (el % de Y es obvio). Y el punto X de la imagen correspondiente es el getWidth() de la imagen multiplicado por el X que acabas de calcular (lo mismo con el punto Y). Como te digo existen millones de formas, pero esta es una.
2. Es parecido al anterior, calcular el % de X y de Y de donde pulsas en el ImageView y luego aplicarlo sobre la imagen. Pero esta vez teniendo en cuenta el punto inicial y final de X (e Y) de la imagen en la pantalla. Es algo más complejo, y así a bote pronto no se decírtelo, tendría que calcularlo. Pero eso ya es cogerte un papel y un lápiz y empezar a hacer cálculos, que realmente es el primer paso siempre en la programación.
En cuanto a lo de hacer zoom en un ImageView, no se puede directamente, tienes que programarlo, existen ya algunas clases por ahí para hacer zoom y moverte por la imagen, incluso con doble click para alejar y acercar.
luislopez12
14/07/13, 13:24:37
Supongo que estás poniendo el ImageView a pantalla completa y en modo fitXY, porque si no no tendrías problemas con las distintas resoluciones.
1. Para hacer esto existen millones de formas, por ejemplo puedes calcular el % de X y el % de Y en la pantalla, y esto lo aplicas sobre la imagen. Obviamente tendrás que usar double o float. El % de X es el punto X (cuando hablo de % me refiero de 0 a 1, donde 1 es el 100%) donde pulsas en el MotionEvent Down dividido entre el getWidth() del ImageView (el % de Y es obvio). Y el punto X de la imagen correspondiente es el getWidth() de la imagen multiplicado por el X que acabas de calcular (lo mismo con el punto Y). Como te digo existen millones de formas, pero esta es una.
2. Es parecido al anterior, calcular el % de X y de Y de donde pulsas en el ImageView y luego aplicarlo sobre la imagen. Pero esta vez teniendo en cuenta el punto inicial y final de X (e Y) de la imagen en la pantalla. Es algo más complejo, y así a bote pronto no se decírtelo, tendría que calcularlo. Pero eso ya es cogerte un papel y un lápiz y empezar a hacer cálculos, que realmente es el primer paso siempre en la programación.
En cuanto a lo de hacer zoom en un ImageView, no se puede directamente, tienes que programarlo, existen ya algunas clases por ahí para hacer zoom y moverte por la imagen, incluso con doble click para alejar y acercar.
Gracias por tu respuesta, en cuanto al imageview le he metido dentro de un frame layout porque sino me quedaban márgenes y yo quería la imagen a pantalla completa.
La verdad es que es más complejo de lo que pensaba, ;)
luislopez12
16/07/13, 15:33:44
He intentado hacer que las coordenadas de la zona sobre la que se pulsa del TouchImageView sean las mismas al hacer zoom pero no lo consigo, ¿alguien podría explicarme algún ejemplo?
vBulletin® v3.8.1, Copyright ©2000-2026, Jelsoft Enterprises Ltd.