¿Cómo se hacen diseños para varios tamaños de pantalla de Android?

Hice algunas investigaciones sobre la construcción de diseños que funcionan para múltiples tamaños de pantalla y estoy buscando alguna aclaración.

¿Es una práctica común simplemente crear un archivo de diseño separado para cada uno de los tres tamaños de pantalla (pequeño, mediano, grande) o puede lograr esto con un método más fácil?

He estado probando mis proyectos en un dispositivo de pantalla grande, y aunque utilizo DIP (píxeles independientes de la densidad) para el relleno, los márgenes, etc., todavía se arruga cuando lo veo en pantallas más pequeñas. ¿Debo diseñar mis proyectos para pantallas medianas y luego permitir que Android lo escale adecuadamente?

No estoy seguro de si esta es una buena pregunta o no, pero estoy buscando cuál es la práctica común para diseñar para múltiples tamaños de pantalla. ¿Qué haces?

Editar: Además de esto, por ejemplo, digamos que tengo un botón que está 40dip por encima de la parte inferior de la pantalla, si literalmente escribo 40dip, o debería usar algún tipo de matemática de píxeles como 40 * screenWidth / blahblah o algo para que se escale según el tamaño de pantalla que tenga el usuario? Tengo una experiencia limitada con UI …

Hay dos ejes a considerar cuando se trata del tamaño de la pantalla: tamaño físico y densidad. La densidad se maneja proporcionando mediciones en saltos y recursos escalados según corresponda. Pero la densidad no siempre implica tamaño o viceversa. Consulte http://developer.android.com/guide/practices/screens_support.html para obtener más información sobre la mecánica.

No es común ni recomendable tener diseños diferentes basados ​​en cada resolución de pantalla que admite, pero es completamente razonable diseñar diseños diferentes para diferentes clases de tamaño (pequeño, mediano, grande). Las pantallas de diferentes tamaños pueden beneficiarse al agregar, quitar o reposicionar ciertos elementos de navegación según la aplicación.

Dentro de una cierta clase de tamaño, debe asegurarse de que sus diseños toleren las variaciones en la resolución de pantalla exacta. Como sugirió Falmarri, use diseños relativos, pesos y otras herramientas disponibles para que su diseño se alargue con elegancia.

La regla general es usar píxeles independientes de la densidad (dips) para las definiciones de tamaño en su diseño xmls: veo que ya lo hace. Al hacerlo, solo tengo el único diseño para toda la gama de dispositivos. Lo que debe dividirse es gráficos. Para eso utilizo 3 directorios dibujables diferentes: ‘drawable-ldpi’, ‘drawable-mdpi’ y ‘drawable-hdpi’. Esto se hace para que las imágenes tengan el mismo tamaño (digamos, en milímetros) en varias densidades de pantalla (suponiendo que el tamaño de la pantalla sea el mismo – Normal, por ejemplo) y deben escalarse de la siguiente manera:

  • drawable-hdpi: 150%
  • drawable-mdpi: 100%
  • drawable-ldpi: 75%

Probablemente es un mal consejo. Sin embargo, si observa el cuadro de Google de Densidades y tamaños de pantalla , puede optar por no invertir sus esfuerzos adicionales en realizar pruebas exhaustivas para pantallas grandes, ya que casi no existen tales dispositivos en el mercado.

No hacer diseños separados no es realmente una práctica común. Solo cuando tienes imágenes que no se pueden estirar es realmente la manera recomendada.

Las cosas siempre se verán un poco estiradas / comprimidas cuando se ven en dispositivos con pantallas más pequeñas o más grandes. Esa es una especie de definición de una pantalla de tamaño diferente. Solo debe usar diseños relativos y dejar que android controle los números de píxeles específicos.