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 05/08/12, 18:56:32
Array

[xs_avatar]
fbermudo fbermudo no está en línea
Usuario poco activo
 
Fecha de registro: jul 2012
Mensajes: 16
Tu operador: Movistar

Tamaño pantalla, densidad y Layouts

Buenas tardes os comento mi problemática.


Estoy desarrollando una aplicación para android y tengo una pantalla donde tengo que colocar una serie de imágenes sobre un layout.


Para esto utilizo un RelativeLayout y las imagenes van en un ImageVIew.
La cuestión es que al colocar el ImageView en su posición desde el diseñador me modifica los parametros Layout_MarginLeft y LayoutMarginTop con sus valores correspondientes.


El problema viene al uitlizarlo en distintos dispositivos, comento el caso con un ejemplo:
La prueba se hace en un dispositivo de 320x480 mdpi y otro de 480x800 hdpi.
Los drawables correspondientes al fondo y la imagen estan en su tamaño correcto en las carpetas drawable-mdpi y drawable-hdpi.


He creado las carpetas layout-normal y layout-large para definir el los respectivos layout pero resulta que tanto un dispositivo como el otro se corresponden con el layout normal dentro de su densidad, por tanto si coloco los parametros LayoutMargin_Left y top para que se vea bien en el de 320x480 se descuadra en el otro.


No se como plantear este tema. También intenté añadir el fondo con la imagen incorportada y mapear el lugar donde el usuario hace clic pero estoy en las mismas.
Estoy planteando mal el problema? es tan dificil hacer una interfaz que se adapte bien a la mayoría de los dispositivos?


Adradecería una ayuda porque estoy un poco perdido, no se si tengo que volver a plantearlo de cero y hacer la interfaz mas flexible en cuanto a la colocación de los elementos.


Un saludo y gracias.
Responder Con Cita


  #2  
Viejo 05/08/12, 20:46:17
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
El diseñador trabaja en PX, por eso ningún programador de Android que quiera trabajar con múltiples resoluciones lo usa. Lo mejor es hacer el XML a mano y usar DIP en lugar de PX. De esta forma se adaptará a todas las resoluciones.
Responder Con Cita
  #3  
Viejo 05/08/12, 21:07:51
Array

[xs_avatar]
fbermudo fbermudo no está en línea
Usuario poco activo
 
Fecha de registro: jul 2012
Mensajes: 16
Tu operador: Movistar

Gracias por tu respuesta.

En el ejemplo anterior estoy trabajando con dp.

El xml esta echo a mano, pero el problema es la colocación del imageView.

Para que se me entienda lo que digo, lo represento con el ejemplo que he puesto.

En la pantalla normal-mdpi(320x480) para que el imageView este colocado en su sitio el LayoutMarginTop tiene que ser de 114dp.

En cambio en la pantalla normal-hdpi(480x800) el valor correcto es de 140dp.

Coomo ves no coinciden y al utilizar ambas el layout de la capeta layout-normal pues no se como hacer que funcione correctamente en ambos tamaños.
Responder Con Cita
  #4  
Viejo 05/08/12, 22:58:45
Array

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

Intenta alinear elementos con el Relative Layout más que especificar márgenes exactos. Por ejemplo, si la imagen tiene que estar "centrada respecto de algo" o "encima de un botón" o "pegado a...". Poner unidades a mano es un quebradero de cabeza en cualquier unidad.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #5  
Viejo 06/08/12, 07:23:59
Array

[xs_avatar]
fbermudo fbermudo no está en línea
Usuario poco activo
 
Fecha de registro: jul 2012
Mensajes: 16
Tu operador: Movistar

Gracias por tu respuesta.

Empiezo a entender que el fallo está en el planteamiento de la interfaz. La cuestión es que el diseño con el que estoy trabajando me obliga a colocar los elementos en un punto determinado de la pantalla y ahí creo que es donde está el error.

Supongo que el diseño de interfaz en uno de los caminos que hay que atravesar para adaptarse al desarrollo móvil. El diseño me viene dado por un diseñador, que al igual que yo, no teníamos experiencia previa aplicaciones para smartphones.

¿Me podéis dar algún consejo a la hora de diseñar la interfaz de mis aplicaciones?

Por ejemplo lo aportado por mocelet, no utilizar una posiciones absolutas, si no relativas a algo.

Un saludo.
Responder Con Cita
  #6  
Viejo 06/08/12, 10:46:28
Array

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

Tienes la guía oficial de Android: http://developer.android.com/guide/p...s_support.html

Si no quieres leerte el tocho puedes saltar al Best Practices, aunque la lectura es instructiva
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #7  
Viejo 07/08/12, 07:25:21
Array

[xs_avatar]
fbermudo fbermudo no está en línea
Usuario poco activo
 
Fecha de registro: jul 2012
Mensajes: 16
Tu operador: Movistar

De nuevo gracias.

Siguiendo tu consejo y después de repasar la documentación he rediseñado la interfaz.

Ahora todos los elementos se posicionan de forma relativa entre si. Uno alineado abajo-derecha otro encima de el...etc

Así y jugando con los paddings poniendo los valores en dp he conseguido representar lo que queríen en los distintos tamaños.

Pero ahora me surge una nueva duda con respecto a las tablets.

Tengo una Wortex 85 pci de 8 pulgadas y 800x600 de resolución. La duda es sobre los drawables que necesito para que se vea bien en este tamaño.

Android me toma la pantalla como de baja densidad por lo que va a buscar las imagenes a la carpeta drawables-ldpi. Si coloco aquí las imagenes con mayor tamaño para adaptarlo a la tablet si arranco en un dispositivo con una pantalla pequeña de baja densidad me mostrará los iconos enormes.

¿Como se afronta esta problemática? ¿se crean 2 versiones para la aplicación una para moviles limitandola desde el manifest a pantallas de tamaño movil y otra para tablets? ¿Exite otra forma mejor de hacerlo?

Un saludo y gracias.
Responder Con Cita
Respuesta

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

Herramientas


Hora actual: 22:25:10 (GMT +2)



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

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