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 20/08/15, 22:42:16
Array

[xs_avatar]
_DeV_ _DeV_ no está en línea
Usuario poco activo
 
Fecha de registro: nov 2011
Mensajes: 45
Tu operador: Movistar

¿Cómo hacer para que se vea bien en diferentes pantallas?

Buenas noches!

Estoy casi terminando la APP pero claro, me queda lo que más miedo me da... que sea adaptable para diferentes pantallas.

He estado haciendo la app estos días con mi Xperia Z1 (4.9") y cuando he ido a probarlo en un Xperia M (4") o un LG L70 (4.3") algunos layouts si que "más o menos" no se ven fuera de lugar, pero pero con otras hay que hacer remodelaciones absolutas. Así que estuve Googleando un poco y lo que recomiendan es crear diferentes carpetas:
layout-smart / layout-normal / layour-large / layout-xlarge

Pero claro, los tres smartphones con los que estoy probando entran todos en la misma carpeta según el Android Studio: layout-normal, luego todas las recolocaciones que estoy haciendo para que en estos que son más pequeños se vean bien, también afectan a los más grandes.

Así que directamente os vengo a preguntar, es correcto lo que estoy haciendo? Es mejor otro método, qué he de tener en cuenta?

Un saludo y gracias como siempre!
Responder Con Cita


  #2  
Viejo 21/08/15, 00:25:31
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
Si trabajas con DP y Weight la mayoría de las veces con un único "layout" te sobrará. Aunque la gente cuando usa multi layout lo hace con "layout-mdpi", "layout-hdpi", etc. Pero ya te digo que trabajando bien con DP rara vez te hará falta.

Yo mis aplicaciones las hago así y se ven perfectas incluso en Tablet.

Otra cosa es que quieras que la distribución sea distinta, como esas aplicaciones que en móvil pulsas un botón para que aparezca el menú y en tablets de 10 pulgadas está todo el tiempo desplegado.
Responder Con Cita
  #3  
Viejo 21/08/15, 04:47:10
Array

[xs_avatar]
JamesRevelo JamesRevelo no está en línea
Usuario poco activo
 
Fecha de registro: oct 2014
Mensajes: 29
Tu operador: Movistar

Hola compañero.

Lo que intentas hacer está bien. A eso se le llama crear recursos alternativos y se lleva a cabo con multiples tipos de calificadores (entre ellos los que tu intentas usar).

Sin embargo existen otros, como por ejemplo los del ancho minimo de pantalla, la misma densidad como lo nombraba el compañero de arriba (hdpi, xhpdi,etc.) o para orientación como lo es landscape y portrait.

Puedes leer mas sobre calificadores en la documentación de google: http://developer.android.com/intl/es...resources.html

O también leer un tuto que hice sobre recursos y calificadores por si deseas ver más:
Uso de recursos en Android
__________________
Desarrollador Android
http://www.hermosaprogramacion.com/
Responder Con Cita
  #4  
Viejo 21/08/15, 08:52:29
Array

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

Ya para terminar de liar a _DeV_, además de distintos layouts puedes tener diversos values.

Si los elementos a mostrar son los mismos y básicamente solo cambia algún tamaño de algo que no pueda calcularse automáticamente con weights o RelativeLayout, en vez de crear otro layout prácticamente igual cambiando dos números, ten solo uno y referencia al valor definido en values que ya Android lo sustituirá por el que corresponda según los modificadores.

Por lo demás, intenta minimizar el número de layouts y sigue la estrategia de kryogeN. Si ves que tienes dos layouts prácticamente iguales lo más seguro es que puedas unificarlos y añadir ese cambio de otra forma.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #5  
Viejo 21/08/15, 09:55:06
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
Al final la programación consiste en reutilizar, cuantas más cosas que hagan lo mismo tenga tu aplicación, malo, porque más cosas tendrás que cambiar si hay que hacer una modificación/actualización.

Esto se aplica a las clases y se aplica a los recursos, ¿para qué quieres tener 15 layouts iguales que tienen la misma distribución? Es mejor partirte un poco la cabeza en buscar una distribución genérica que hacer 15 distribuciones que no cambian prácticamente en nada, luego tienes que modificar un elemento y toca hacerlo 15 veces.

Y por si fuese poco ahora Google ofrece la PercentRelativeLayout, que soluciona el 80% de los casos para los que antes se usaba Weight. Además de ofrecer una solución de porcentaje tanto horizontal como vertical al mismo tiempo en un único Layout (para poder hacer eso con Weights tienes que anidar 2 LinearLayout)
Responder Con Cita
  #6  
Viejo 21/08/15, 11:16:50
Array

[xs_avatar]
_DeV_ _DeV_ no está en línea
Usuario poco activo
 
Fecha de registro: nov 2011
Mensajes: 45
Tu operador: Movistar

Primero gracias a todos por las respuestas, son ideales.

Por otro lado, el problema que tengo realmente es lo que comenta mocelet:
 Cita: Originalmente Escrito por mocelet Ver Mensaje
Si los elementos a mostrar son los mismos y básicamente solo cambia algún tamaño....
Os pongo un ejemplo de mi activity main:
Son tres imagebutton alineados en horizontal, que tienen unos 100dp x 100dp cada uno y claro, en mi Xperia Z1 (4.7") se ven de escándalo, con su espaciado entre ellos tres y sin que se pisen..., pero luego cojo el Xperia M4 (4") y no se pisan, pero están apretujados, demasiado juntos y se ve muy feo.

Luego, en otra actividad, tengo un boton casi al final de la misma (abajo en el centro) y en el Xperia Z1 se ve sin problema, pero en el Xperia M4 ni siquiera se ve el botón.

Cosas así como puedo solventarlas? Sin aumentar la carga de programación como bien me decís.

PD: Lo del weight, por más que miro entre ms layouts no lo he usado para nada, a ver si me podéis comentar un poco sobre eso... (Uso RelativeLayouts en casi todos los casos)

Última edición por _DeV_ Día 21/08/15 a las 11:20:23.
Responder Con Cita
  #7  
Viejo 21/08/15, 14:33: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
 Cita: Originalmente Escrito por _DeV_ Ver Mensaje
Primero gracias a todos por las respuestas, son ideales.

Por otro lado, el problema que tengo realmente es lo que comenta mocelet:


Os pongo un ejemplo de mi activity main:
Son tres imagebutton alineados en horizontal, que tienen unos 100dp x 100dp cada uno y claro, en mi Xperia Z1 (4.7") se ven de escándalo, con su espaciado entre ellos tres y sin que se pisen..., pero luego cojo el Xperia M4 (4") y no se pisan, pero están apretujados, demasiado juntos y se ve muy feo.

Luego, en otra actividad, tengo un boton casi al final de la misma (abajo en el centro) y en el Xperia Z1 se ve sin problema, pero en el Xperia M4 ni siquiera se ve el botón.

Cosas así como puedo solventarlas? Sin aumentar la carga de programación como bien me decís.

PD: Lo del weight, por más que miro entre ms layouts no lo he usado para nada, a ver si me podéis comentar un poco sobre eso... (Uso RelativeLayouts en casi todos los casos)
Es una de las partes más complicadas de la programación de Android (y en casi cualquier lenguaje), maquetar correctamente, incluso en la programación Web hacer un formulario tonto en PHP (o en ASP.NET como es mi caso) te lleva poco tiempo, pero hacer que quede bonito te puede llevar muchísimo más tiempo.

Por desgracia sólo se aprende a base de ensayo y error, lo único que te puedo decir es:

1) Estudia bien cómo se usan los DP, porque funcionan muy bien en horizontal pero no valen para nada en vertical. Es decir, no te vas a ahorrar un scroll vertical en determinados móviles por usar DP, pero si puedes ahorrarte el horizontal (creo que esto también te aclara la duda del botón que no ves abajo)

2) Si quieres que tu aplicación tenga siempre una cabecera y un pie (como el botón que indicas), tendrás que tener en cuenta que es muy probable que la parte entre ambas tenga que poder scrollearse. Con lo cual tendrás un RelativeLayout que tendrá 3 Layouts dentro, uno con Align_parent_top, otro con Align_parent_bottom, y otro entre ambos, que será el scrolleable.

Cómo te digo es jugar y hacer pruebas hasta que quede bien, al final después de mucha práctica consigues que quede bien casi a la primera.
Responder Con Cita
Gracias de parte de:
  #8  
Viejo 22/08/15, 08:35:40
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Aparte de todo lo explicado por kriogen y compañía , solo añadir que para mi es muy practico el recurso dimen para aplicar dimensiones segun dpi del layout, para esos botones el weigth te iría de lujo.

Por otro lado cuando alinies objetos en vertical o horizontal mas que relative usa linearLayout te ahorraras muchos dolores de cabeza y que se te amontonen esos botones.
Responder Con Cita
  #9  
Viejo 22/08/15, 09:05:54
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 rafaxplayer Ver Mensaje
el recurso dimen para aplicar dimensiones segun dpi del layout
Cierto, donde dije "values" antes me refería concretamente al dimens para los tamaños, values es la carpeta contenedora (vaya memoria )

Para establecer paddings, márgenes o tamaños de letra es lo mejor.
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
Responder Con Cita
  #10  
Viejo 22/08/15, 11:27:57
Array

[xs_avatar]
_DeV_ _DeV_ no está en línea
Usuario poco activo
 
Fecha de registro: nov 2011
Mensajes: 45
Tu operador: Movistar

Gracias a todos.

Para evitar abrir un nuevo tema, si quiero establecer una limitación minima de pulgadas como puedo hacerlo? Es decir, que la app solo sea descargable en móviles con más de x pulgadas de pantalla (a ver si es posible).

Un saludo!
Responder Con Cita
  #11  
Viejo 22/08/15, 12:17:06
Array

[xs_avatar]
Dexafree Dexafree no está en línea
Mr. FAQMan
· Votos compra/venta: (1)
 
Fecha de registro: dic 2008
Mensajes: 8,021
Modelo de smartphone: Samsung Galaxy S i9000 + Galaxy Tab 10.1 WiFi
Tu operador: Movistar
Eso se declara en el manifest

Aqui tienes un par de enlaces
http://developer.android.com/intl/es...s-element.html
http://developer.android.com/intl/es...s-element.html

Aunque olvidate de definir por pulgadas. A Android le dan igual las pulgadas, lo que le interesa es el tipo de resolucion (hdpi, xhdpi, xxhdpi...) y el tamaño de pantalla (large, small...)
Responder Con Cita
Gracias de parte de:
  #12  
Viejo 22/08/15, 14:23:21
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
Como dice DexaFree, no puedes, además que no tiene mucho sentido. Ni siquiera puedes establecer cuanto DP como mínimo puedes tener de alto, que realmente es tu problema, pero es que ese problema se resuelve reconfigurando el Layout o poniendo un ScrollView.
Responder Con Cita
Gracias de parte de:
  #13  
Viejo 22/08/15, 16:10:28
Array

[xs_avatar]
_DeV_ _DeV_ no está en línea
Usuario poco activo
 
Fecha de registro: nov 2011
Mensajes: 45
Tu operador: Movistar

Gracias por los comentarios.

De todas formas, estoy haciendo la app para que se vea óptima a partir de 4", creo que ya es un sector bastante pequeño los que tienen moviles Android con pantallas inferiores a esas pulgadas.

Por cierto, he ido a coger un móvil para probar la app y tenía activado, en las opciones de accesibilidad, la opción de Texto Grande. Era un Xperia M4 (5"), y con esa opción activada el texto de la app también sufría el cambio y se veía todo muy descuadrado. Hay alguna manera de que esta opción de Texto Grande no se aplique a la app?

Porque eso es ya algo que se me escapa, como ponga la letra aún más chica en modo normal, será ilegible jajajaja.

Un saludo!
Responder Con Cita
  #14  
Viejo 22/08/15, 17:37:27
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
 Cita: Originalmente Escrito por _DeV_ Ver Mensaje
Gracias por los comentarios.

De todas formas, estoy haciendo la app para que se vea óptima a partir de 4", creo que ya es un sector bastante pequeño los que tienen moviles Android con pantallas inferiores a esas pulgadas.

Por cierto, he ido a coger un móvil para probar la app y tenía activado, en las opciones de accesibilidad, la opción de Texto Grande. Era un Xperia M4 (5"), y con esa opción activada el texto de la app también sufría el cambio y se veía todo muy descuadrado. Hay alguna manera de que esta opción de Texto Grande no se aplique a la app?

Porque eso es ya algo que se me escapa, como ponga la letra aún más chica en modo normal, será ilegible jajajaja.

Un saludo!
Usando DP en lugar de SP para Textos, que es lo que hago yo salvo para textos que son scrolleables.
Responder Con Cita
Gracias de parte de:
Respuesta

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



Hora actual: 03:48:41 (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 / 邮件联系 /