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 04/07/12, 11:43:40
Avatar de KrLx_roller
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
Mensajes: 522
Compra y venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -
Mencionado: 2 comentarios
Tagged: 0 hilos
Problema con visualización de elementos dinámicamente

Buenas!

He hecho una aplicación la cual usa una API en JSON. El usuario puede poner a construir varias cosas y éstas se van añadiendo al JSON en forma de una cola de producción. Lo que yo hago es obtener dicho archivo y parsearlo mediante la librería GSON.

Una vez hecho esto, creo dinámicamente X elementos (los que contiene el JSON) con la información de cada uno.

Esto funciona perfectamente en todos los móviles que he probado, excepto en el maldito Galaxy SIII... Sobrepone todos los elementos y anula ciertas funciones.

He emulado la versión 4.0.3 (ya que la 4.0.4 no está) con la resolución y tamaño del Galaxy y se ve perfecto, pero los usuarios me reportan que en el terminal real se ve fatal.

Os pongo una captura de como se le ve al usuario y como se debería ver:

Se debería ver así: http://img213.imageshack.us/img213/4430/sinttulorhl.png

Se ve así: http://img696.imageshack.us/img696/8...iongeneral.jpg

Qué puede ser? Debería funcionar perfectamente. Lo mismo pasa con otra pantalla que tiene exactamente el mismo funcionamiento, aunque en esa ya no se ve nada...

Un saludo y gracias!

Última edición por KrLx_roller Día 04/07/12 a las 14:09:01
Responder Con Cita


  #2  
Viejo 04/07/12, 11:55:47
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Buenas, parece un problema de layout. ¿En el emulador, además de la resolución has puesto explícitamente que es un dispositivo xhdpi? (lo del tamaño en pulgadas da igual, eso es para verlo a escala real o no, no afecta a los dpi de la máquina).

EDIT: Lo cierto es que después de abrir el cuadro de configuración, no me queda claro qué hay que hacer exactamente para conseguir que el emulador trabaja en xhdpi, igual con lo que has hecho vale, ¿podrías confirmarlo?

Última edición por mocelet Día 04/07/12 a las 12:05:47
Responder Con Cita
  #3  
Viejo 04/07/12, 12:59:11
Avatar de KrLx_roller
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
Mensajes: 522
Compra y venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -
Mencionado: 2 comentarios
Tagged: 0 hilos
Creo que lo he encontrado. Al editar el AVD, la resolución que tenia puesta es de 720x1280. En Hardware, en la propiedad 'Abstracted LDC density' tengo como valor '240'. ¿Puede ser que el del galaxy sea 320? He hecho clic encima del valor y me permite cambiarlo a 320.

Supongo que será eso. Lo pruebo y te comento.

Gracias!

EDIT: Prefecto! Era eso! Ahora sólo falta averiguar cómo solucionarlo jejej. Aprovechando el hilo, quiero hacer una pregunta. En los XML, cuando se quiere dar un tamaño a los elementos o un padding o margin, se usa dp ó dip de modo que en todas las pantallas se ve una misma proporción. Pero yo, al crear elementos dinámicamente, al atribuir a un layout un layoutParams.setMargins(); éstos se deben establecer en píxeles. Lo que hago para establecer los píxeles en base a los dp uso lo siguiente:

Código:
px = (int) (20 * scale + 0.5f);
Lo que pasa es que al variar entre pantallas, la distancia establecida con 'px' varía. Qué es lo que puedo usar para que se vea como en el XML?

Última edición por KrLx_roller Día 04/07/12 a las 13:11:11
Responder Con Cita
  #4  
Viejo 06/07/12, 10:51:44
Avatar de mocelet
mocelet mocelet no está en línea
Desarrollador
Mensajes: 2,203
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -
Mencionado: 17 comentarios
Tagged: 2 hilos
Cita:
Originalmente Escrito por KrLx_roller Ver Mensaje
EDIT: Prefecto! Era eso! Ahora sólo falta averiguar cómo solucionarlo jejej. Aprovechando el hilo, quiero hacer una pregunta. En los XML, cuando se quiere dar un tamaño a los elementos o un padding o margin, se usa dp ó dip de modo que en todas las pantallas se ve una misma proporción. Pero yo, al crear elementos dinámicamente, al atribuir a un layout un layoutParams.setMargins(); éstos se deben establecer en píxeles. Lo que hago para establecer los píxeles en base a los dp uso lo siguiente:

Código:
px = (int) (20 * scale + 0.5f);
Lo que pasa es que al variar entre pantallas, la distancia establecida con 'px' varía. Qué es lo que puedo usar para que se vea como en el XML?
Estoy un poco empanado hoy, acabo de preguntar casi lo mismo D

Bueno, en mi caso es al revés, quiero modificar el tamaño de los layouts en XML para hacerlos proporcionales a otros elementos.

En http://stackoverflow.com/questions/4...tpadding-in-dp comentan cómo transformar dp en px. Que por cierto es lo mismo que has puesto.

¿Cuál es el problema exactamente?
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: 00:57:55 (GMT +1)

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