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 29/01/12, 23:21:32
Avatar de andreuos
andreuos andreuos no está en línea
Usuario novato en la web
Mensajes: 2
 
Fecha de registro: ene 2012
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Tamaño proporcional botones en distintas pantallas

Hola a todos,
Tengo experiencia con PHP, y ahora quería empezar con Java y Android. Quiero diseñar una aplicación similar a una calculadora. Me he estado leyendo unos tutoriales Android y ahora estoy diseñando el "layout". Lo que quiero es que el tamaño de los botones sea proporcional a la pantalla del dispositivo y encaje en cualquier móvil o tablet. He estado buscando por Internet información sobre px sp dip... y nada de esto hace lo que necesito. Lo único que si me ha funcionado ha sido insertar en el linearlayout:
android:weightSum="10"
y después en los botones
android:layout_weight="5"
Y así los botones tienen el tamaño de media pantalla. El problema es que solo en una dirección, es decir si el layout es horizontal el botón tiene el tamaño de media pantalla horizontal, pero no en vertical.
Conocéis alguna manera de que funcione?
Muchas gracias a todos.
Responder Con Cita


  #2  
Viejo 29/01/12, 23:41:49
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
A ver, lo primero es lo primero.

¿Qué entiendes por resolución?

Si por resolución entiendes que en un móvil con HDPI se vea igual que en uno con MDPI, eso es fácil, solo tienes que usar como medidas DIP, ya que si usas PX se verá más pequeño en un HDPI que en un MDPI.

Si por resolución entiendes que se vea igual en un móvil HDPI que en una Tablet HDPI, lo mejor es que hagas un Layout para cada uno.
Responder Con Cita
  #3  
Viejo 30/01/12, 14:19:30
Avatar de andreuos
andreuos andreuos no está en línea
Usuario novato en la web
Mensajes: 2
 
Fecha de registro: ene 2012
Mensajes: 2
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Pero, veo que hay gente que diseña un layout para todo tipo de dispositivos usando:
android:weightSum="10"
Es factible? Porque no hay ninguna medida en % como si hay en javascript o html?
Lo digo porque si tengo que hacer un layout por cada tamaño de pantalla es mucho trabajo, habrá 10 tipos de pantallas diferentes. Y en este caso como lo haría para que cada dispositivo abriera su layout?
Muchas gracias de nuevo y un saludo.
Responder Con Cita
  #4  
Viejo 30/01/12, 14:38:55
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
Con el weight lo que haces es que al poner controles con wrap_content (o con 0, realmente la documentación dice que hay que poner 0 pero con wrap_content también va) te ajusta los controles según ese weight. Pero para distintas resoluciones te los deformará, por eso te digo lo de usar distintos Layout.

De todas formas el weightsum te lo puedes ahorrar, se calcula automaticamente con el layout_weight de todos los hijos.

Por ejemplo, si tienes un LinearLayout con 5 controles y al primero le pones:
android:layout_weight="3"

Y a los otros 2:

android:layout_weight="1"

Los controles ocuparán todo el tamaño del LinearLayout donde están contenidos pero ocupando el primer control 3/5 y los otros 2 1/5 cada uno.

Por cierto, esto creo que solo funciona en horizontal, aunque en vertical nunca lo he probado.

Lo del tipo de Layout según la pantalla, lo coge automaticamente el móvil (o tablet) según el directorio del layout, por ejemplo si en res tienes 2 directorios uno llamado layout-hdpi y otro layout-mdpi si el móvil es hdpi o superior cogerá el hdpi si es mdpi o inferior cogerá el mdpi. Para ver todas las posibles variantes (también puedes discriminar por el alto o ancho de la pantalla), visita esta web:

http://developer.android.com/guide/p...s_support.html

De todas formas usando bien los DIP y trabajando SIEMPRE con wrap_content y fillparent, y weight para los horizontales y gravity para las posiciones relativas de los bordes, tu aplicación debería funcionar bien en cualquier dispositivo. Lo único que puede que en un móvil algo ocupe toda la pantalla y en una tablet sobre media pantalla, pero la relación de aspecto será la misma (en términos de resolución de pixeles)
Responder Con Cita
Respuesta

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


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: 00:03:32 (GMT +2)

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