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

Respuesta
 
Herramientas
  #1  
Viejo 04/07/12, 11:43:40
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -

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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

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?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!

Ú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
Array

[xs_avatar]
KrLx_roller KrLx_roller no está en línea
Usuario muy activo
· Votos compra/venta: (3)
 
Fecha de registro: oct 2008
Mensajes: 522
Tu operador: -

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
Array

[xs_avatar]
mocelet mocelet no está en línea
Desarrollador
 
Fecha de registro: may 2011
Localización: Madrid
Mensajes: 2,203
Tu operador: -

 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?
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
Respuesta

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



Hora actual: 19:18:39 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /