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 05/08/12, 18:56:32
Avatar de fbermudo
fbermudo fbermudo no está en línea
Usuario poco activo
Mensajes: 16
 
Fecha de registro: jul 2012
Mensajes: 16
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de fbermudo
fbermudo fbermudo no está en línea
Usuario poco activo
Mensajes: 16
 
Fecha de registro: jul 2012
Mensajes: 16
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
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
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.
Responder Con Cita
  #5  
Viejo 06/08/12, 07:23:59
Avatar de fbermudo
fbermudo fbermudo no está en línea
Usuario poco activo
Mensajes: 16
 
Fecha de registro: jul 2012
Mensajes: 16
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
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
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
Responder Con Cita
  #7  
Viejo 07/08/12, 07:25:21
Avatar de fbermudo
fbermudo fbermudo no está en línea
Usuario poco activo
Mensajes: 16
 
Fecha de registro: jul 2012
Mensajes: 16
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

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: 09:22:25 (GMT +1)

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