|
||
|
|
|
|||||||
| Avisos |
| 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
|
||||
|
||||
|
Resoluciones
Buenas,
Hace poco termine mi primera aplicacion, pero cuando la he ido a probar en diferentes moviles de familiares y amigos me he dado cuenta de que la aplicacion descuadra en la mayoria de los casos. Mi app contiene bastantes imágenes y la he hecho utilizando el drawable-hdpi y mdpi (en una proporción 1.5 - 1) pero aun así dentro de esas resoluciones algunas son un poco mayor o un poco menor y me descuadran. ¿Como hacéis para que las aplicaciones se adapten a todas las resoluciones del mercado? Un saludo y muchisimas gracias de antemano Última edición por Androidsc Día 25/07/13 a las 13:29:19. |
|
|
|
#2
|
||||
|
||||
|
tienes que crear los drawables en 4 formatos ldpi - mdpi - hdpi - xhdpi . Además tendrás que diseñar los layouts de tal manera que los textos y demás partes de la interfaz se puedan ver bien en las distintas pantallas. Si usas eclipse tienes el modo gráfico donde puedes utilizar distintas pantallas y suponer como se vería. Un saludo.
|
|
#3
|
||||
|
||||
|
Vaya locura, es un poco complicado, ¿no?
¿Como lo soléis hacer? ¿Primero hacéis la app entera para mdpi y luego adaptáis el resto? ¿Que proporciones utilizáis? He leído por Internet que la gente calcula las densidades de pantalla, ¿Lo utilizais para vuestras app? Muchas gracias por responder, saludos!! Última edición por Androidsc Día 27/07/13 a las 20:13:23. |
|
#4
|
||||
|
||||
|
#5
|
||||
|
||||
|
Cual es el método que utilizas tu compañero? saludos |
|
#6
|
||||
|
||||
|
tienes que crear los drawables en 4 formatos ldpi - mdpi - hdpi - xhdpi . Además tendrás que diseñar los layouts de tal manera que los textos y demás partes de la interfaz se puedan ver bien en las distintas pantallas. Si usas eclipse tienes el modo gráfico donde puedes utilizar distintas pantallas y suponer como se vería. Un saludo.
![]() |
|
#7
|
||||
|
||||
|
|
|
#8
|
||||
|
||||
|
no entiendo lo que me preguntas
|
|
#9
|
||||
|
||||
|
En realidad lo que me interesa saber es por cual de todos los drawable que me comentaste (ldpi - mdpi - hdpi - xhdpi) empiezas a diseñar la aplicación y cual es la proporcion que aplicas entre ellos (75%-100%-150%-200%)?
saludos y gracias!! |
|
#10
|
||||
|
||||
|
lo que haces es referir al archivo y Android automáticamente elige el drawable correspondiente. Los tamaños varían según el tipo de icono o imagen, en la documentación tienes mucha informacion sobre el tema.
|
|
#11
|
||||
|
||||
|
Pero a ver... no solo es una cuestión de resolución, los diferentes móviles también tienen proporciones (ancho-largo) diferentes... ¿como se resuelve esto?.
|
|
#12
|
||||
|
||||
|
Realmente no hay tantas proporciones, básicamente panorámico (16:9, 16:10) y no-panorámico (4:3, 5:4). Supuesto que mantengas fijo el ancho a la hora de diseñar, lo que cambia en las proporciones es la altura. En muchas apps con poner scroll es suficiente. En un juego por ejemplo no vale lo del scroll normalmente porque quieres llenar la pantalla y que se vea todo. Ahí ya hay más estrategias, como que el área de juego sea 4:3 y el resto sea "de relleno" (si cabe se muestra, si no se corta y no pasa nada).
__________________
El mejor Cuatro en Raya de Android (Hilo en HTCMania, Play Store) ¡Un millón de descargas!
|
|
#13
|
||||
|
||||
|
Trabajando con DPI y RelativeLayout.
Haciendo esto los móviles que tengan proporciones estándar de PPI funcionarán perfectos, en el resto se verá un poco diferente. Por ejemplo, yo sólo trabajo con un Layout único para todos los tamaños (todos en Portrait). En todos los móviles con PPI estándar según su tamaño se me ve perfecto, pequeños, grandes, incluso tablets. Pero por ejemplo uno de los móviles que tengo para depurar es un HTC One S, que es HDPI pero tiene un PPI de 256, cuando el estándar es de 240. Lo que ocurre es que todo se ve un poco más pequeño que en el resto de móviles, sobre todo la letra. Y en cuanto a las imágenes, igual, puedes usar sólo XHDPI y se autoreducen de tamaño, y al ser interpolación negativa no se nota. Lo único es que te ocupará un poco más de memoria (no mucha) por tener que hacer la conversión, pero como ganancia el APK ocupará muchísimo menos (no tienes la misma imagen repetida 4 veces). Además que ya desde JB también existe el XXHDPI y está preparado (aún no hay ningún móvil que lo soporte, pero el sistema ya está preparado) el XXXHDPI. EDIT: Se me adelantó mocelet |
|
#14
|
||||
|
||||
|
Usando interfaces que se adapten automáticamente, usando RelativeLayout para que los elementos ocupen toda la pantalla, usando scroll cuando algo no quepa en vertical, etc.
Realmente no hay tantas proporciones, básicamente panorámico (16:9, 16:10) y no-panorámico (4:3, 5:4). Supuesto que mantengas fijo el ancho a la hora de diseñar, lo que cambia en las proporciones es la altura. En muchas apps con poner scroll es suficiente. En un juego por ejemplo no vale lo del scroll normalmente porque quieres llenar la pantalla y que se vea todo. Ahí ya hay más estrategias, como que el área de juego sea 4:3 y el resto sea "de relleno" (si cabe se muestra, si no se corta y no pasa nada). ![]() |
|
#15
|
||||
|
||||
|
Buenas.
Respecto a este tema hay una cosa que no me cuadra si no usamos diferentes layouts y ponemos RelativeLayouts y medidas en dp como dice Kriogen en un solo layout : Un Samsung Galaxy S3 tiene 306 PPI ( resolución XHDPI) con 720 pixels de ancho. Usando medidas dps serian 1.9125 pixles = 1dp con lo cual si pongo un boton que me ocupe toda la anchura de pantalla serian 374 dps. Si uso el android Virtual device manager y seleccion un terminal con resolucion mdpi (160PPI) de los que aparecen por defecto nos encontramos con que tiene una resolucion de 320x480 pixels . Teniendo en cuenta que 1 pixel = 1 dp para resoluciones mdpi , nos encontramos que un boton que ocupe toda la anchura tendria 320 dps con lo cual la medida "dp" en un terminal ya no es igual a la del otro y todo queda descompensado !!!! Si hay que hacer el diseño para terminales de este tipo basandonos en dps y RelativeLayouts no cuadra. Al menos es lo que me pasa a mi cuando depuro en mi GalaxyS3 y luego lo hago con un terminal del AVDM como el indicado antes.. que queda todo descuadrado. Un saludo. Última edición por manolazo Día 04/11/13 a las 19:15:15. |
|
#16
|
||||
|
||||
|
Buenas.
Respecto a este tema hay una cosa que no me cuadra si no usamos diferentes layouts y ponemos RelativeLayouts y medidas en dp como dice Kriogen en un solo layout : Un Samsung Galaxy S3 tiene 306 PPI ( resolución XHDPI) con 720 pixels de ancho. Usando medidas dps serian 1.9125 pixles = 1dp con lo cual si pongo un boton que me ocupe toda la anchura de pantalla serian 374 dps. Si uso el android Virtual device manager y seleccion un terminal con resolucion mdpi (160PPI) de los que aparecen por defecto nos encontramos con que tiene una resolucion de 320x480 pixels . Teniendo en cuenta que 1 pixel = 1 dp para resoluciones mdpi , nos encontramos que un boton que ocupe toda la anchura tendria 320 dps con lo cual la medida "dp" en un terminal ya no es igual a la del otro y todo queda descompensado !!!! Si hay que hacer el diseño para terminales de este tipo basandonos en dps y RelativeLayouts no cuadra. Al menos es lo que me pasa a mi cuando depuro en mi GalaxyS3 y luego lo hago con un terminal del AVDM como el indicado antes.. que queda todo descuadrado. Un saludo. ![]() Donde no cuadran es en altura, y entonces aquí una de dos, o usas ScrollView o creas un Layout diferente. Todos los móviles Android de resolución estándar (Normal Screen) tienen 320 dpi de ancho (En el caso del HTC One S tiene 360 dpi, pero repito, porque no es estándar). Pero el tema de móviles con resoluciones no estándar tampoco lo arreglas con diferentes Layouts, ya que sería igualmente HDPI Normal Screen, aunque sea de 320 dpi o de 360 dpi. Lo mejor es no obsesionarse mucho, y pensar siempre en la forma más optima de distribuir en la pantalla. Por ejemplo, si quieres crear 3 botones de igual tamaño no los hagas cada uno de 320/3, crea un LinearLayout Horizontal con un Weight de 1 para cada botón. Última edición por kriogeN Día 04/11/13 a las 20:42:43. |