|
||
|
|
|
|||||||
| 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
|
||||
|
||||
|
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. |
|
|
|
#2
|
||||
|
||||
|
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. |
|
#3
|
||||
|
||||
|
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); Última edición por KrLx_roller Día 04/07/12 a las 13:11:11. |
|
#4
|
||||
|
||||
|
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); ![]() DBueno, 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!
|
![]() |
Estás aquí
|
||||||
|
||||||