|
||
|
|
|
|||||||
| 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
|
||||
|
||||
|
Adaptar OnTouch (x,y) a varias pantallas
Muy buenas gente, este es mi primer post y ya estoy preguntando :P.
Estoy haciendo una aplicación que consiste en que aparece una imagen durante unos segundos y seguidamente aparece la misma pero con 4 diferencias, el usuario debe de tocar donde estas esas diferencias y una vez encuentra las 4 se desbloquea un boton para pasar a la siguiente imagen, todo eso ya lo he hecho y lo he estado probando en un tipo de emulador, mi consulta es que si ejecuto otro emulador de tamaño diferente (aunque sea muy poca diferencia) ya no funciona el ontouch por que se queda con las X e Y en otra posicion, como puedo hacer para que esas X e Y no cambien o alguna otra solución. Para detectar donde seleccionas lo tengo puesto por 4 if, uno por cada diferencia: if (X < 199 && X > 189 && Y < 78 && Y > 60 && aux == true) { txtaciertos.setText("Total de diferencias encontradas " + aciertos + "/4"); aciertos++; elefantepelo2.setVisibility(View.VISIBLE); aux = false; } Gracias ;) |
|
|
|
#2
|
||||
|
||||
|
Yo estoy haciendo un juego que se escala a los diferentes tamaños de pantalla. Ya que X e Y no son los mismos puntos en tamaños de pantalla direfentes. Para que esto no ocurra hay que escalar las coordenadas. Te explico un poco la formula que he usado.
Hay que conseguir la escala de cada pantalla, esto se hace: scaleX = "tamaño de pantalla actual" / "tamaño de pantalla nuevo" scaleY = "tamaño de pantalla actual" / "tamaño de pantalla nuevo" Donde scaleX es el ancho y scaleY la altura. Tamaño de pantalla actual seria el ancho o alto para el que as programado el juego y tamaño de pantalla nuevo el ancho o el alto de la pantalla mas grande o mas pequeña. Una vez conseguida la escala tienes que capturar la cordenada X o Y del evento touch y multiplicarla por scaleX o scaleY. El resultado sera el touch en la zona correcta. Haber si te sirve de ayuda, de todas maneras todo esto esta explicado detalladamente en un libro de programacion
__________________
Visita mi blog: EL BAUL DE ANDROID
|
|
#3
|
||||
|
||||
|
1º) No hardcodees
2º) Tienes que buscar la proporción entre el tamaño real de la imagen y el tamaño que está teniendo en la pantalla. El primero lo sacas del propio Bitmap (o Drawable), el segundo lo sacas del tamaño del ImageView. Con los 4 datos (Altura y anchura de ambos objetos) calculas la posición % de altura y % de anchura de donde has tocado, y esos son los datos que tienes que chequear. Es bastante más fácil de lo que parece en la explicación. EDIT: Se me ha adelantado rinxe |
![]() |
Estás aquí
|
||||||
|
||||||