Esqueleto de la aplicación para admitir pantallas múltiples

Como sabemos, Android viene con varios dispositivos que tienen diferentes características, resolución y tamaño de pantalla, por lo que al desarrollar una aplicación que admite pantallas múltiples (pequeñas y grandes), existe un obstáculo de tamaño y diseño.

Esto conduce a diferentes combinaciones de tamaños de pantalla, resoluciones y DPI, y crea un gran desafío al diseñar y desarrollar dispositivos Android. Mientras que otros fabricantes (que no sean Android) tienen diferentes resoluciones y DPI, comparten el mismo tamaño de pantalla y las resoluciones siguen la misma relación de aspecto. Por lo tanto, se puede crear una imagen para adaptarse a dispositivos que no sean Android.

Mi pregunta es si existe un flujo o architecture adecuada que uno debe seguir para cumplir con el requisito.

enter image description here

Recuerde que tenemos tabletas de diferente tamaño y resolución.

Soy consciente de que el Desarrollador de Android contiene esta información, pero mi punto de vista es desde la implementación.

Por lo que sé, lo que entendí es que para diseñar gráficos de Android, incluso el Progtwigdor debe conocer el concepto de diseño.

Finalmente creó una estructura que maneja diseños e íconos para pantallas múltiples.

Android generaliza las pantallas de los dispositivos en categorías basadas en dos parámetros:

  • Tamaño de pantalla, el tamaño físico de la pantalla (medido en diagonal)
  • Densidad de pantalla, la densidad de píxeles físicos de la pantalla (en píxeles por pulgada o ppi) `

Para determinar el tamaño y la densidad de la pantalla rápidamente, instale la aplicación ” Cuál es mi tamaño ” para Android.

Tamaño de pantalla

Android define cuatro tamaños de pantalla generalizados:


  Qualifier Size small ~3 inches (approx) normal ~4 inches (approx) large Exceeds 4 inches xlarge Exceeds 7 inches 
  • La mayoría de los teléfonos se clasifican como pequeños o normales (aproximadamente de 3 a 4 pulgadas en diagonal). Pero ahora, hay muchos teléfonos con pantalla grande como Galaxy S4, HTC One, Xperia Z
  • Una tableta pequeña como Samsung Galaxy Tab se clasifica como grande (más grande que 4 pulgadas)
  • Extra grande se aplica a dispositivos grandes, por ejemplo, tabletas grandes

Android define cuatro densidades de pantalla generalizadas:


  Qualifier Description Nominal value ldpi low density 120 ppi mdpi medium density 160 ppi hdpi high density 240 ppi xhdpi extra high density 320 ppi 

Típicamente:

  • el tamaño de la pantalla tiene el mayor impacto en los diseños de tu aplicación
  • la densidad de la pantalla tiene un mayor impacto en su imagen y recursos gráficos

Aquí se enumera la diferencia porcentual de la pantalla del dispositivo

  • Ldpi- 75%
  • Mdpi- 100% (base según el sitio del desarrollador de Android)
  • Hdpi- 150%
  • XHdpi- 200%

enter image description here

Pero como sabemos ahora, la mayor parte del dispositivo viene con 480X800, así que considero esto como un dispositivo basado, por lo que a nuestro nuevo cálculo le gustará esto.

  • Ldpi- 50%
  • Mdpi- 66.67%
  • Hdpi- 100%
  • XHdpi- 133.33%

lo que significa que el primer ícono y diseño se creará solo para 480X800 y luego para los de descanso (es decir, Ldpi, Mdpi, Xhdpi).

Hay imágenes que son comunes para todos los diseños y deben ser uniformes en color y forma (sin forma compleja, sin curva), por lo que para este tipo de imagen estamos creando 9patch que se colocará en la carpeta “drawable (no-sufijo)”. Para crear una imagen de 9Patch puedes usar DrawNinePatch o BetterNinePatch

Ahora simplemente cambie el nombre de sus imágenes según los estándares de Android y complete su aplicación con hdpi y luego simplemente tome la carpeta drawable-hdpi y abra Adode Photoshop (recomendado) cree una acción de tamaño múltiple (simplemente cambie el tamaño según el porcentaje) una vez Acción creada para todos tamaño, solo realice Batch Automate y proporcione la fuente (drawable-hdpi) y el destino (drawable-ldpi, drawable-mdpi, drawable-xdpi).

La razón por la que insisto en que use Photoshop porque cambiará el tamaño de su imagen automáticamente con Actions y un punto más es porque no necesita cambiar el nombre del archivo (le asignará el mismo nombre que el original).

una vez que haya completado la creación de todas las imágenes, actualice su proyecto y pruébelo.

A veces puede existir la posibilidad de que el diseño que soporta la pantalla (xhdpi, hdpi, mdpi) se corte en una pantalla pequeña (ldpi), así que para manejarlo simplemente cree una carpeta Layout (layout-small) separada y agregue ScrollView (principalmente) . Eso es.

Tablet Tablets se clasifican en dos tamaños.

  1. 7 “(1024X (600-48 (barra de navegación))) = 1024X552 (dibujable-grande)
  2. 10 “(1280X (800-48 (barra de navegación))) = 1280X752 (drawable-xlarge)

En esto tenemos que crear una imagen para la pantalla y simplemente ponerlos en consecuencia

Así que, en general, tendremos esta carpeta en nuestra aplicación para admitir pantallas múltiples.

 drawable drawable-ldpi drawable-mdpi drawable-hdpi drawable-xhdpi drawable-large drawable-xlarge 

será una combinación más calificada con el Screen size and Screen density

 drawable-large-ldpi drawable-large-mdpi drawable-large-hdpi drawable-large-xhdpi 

más calificador con Screen density and Version

 drawable-ldpi-v11 drawable-mdpi-v11 drawable-hdpi-v11 drawable-xhdpi-v11 

y más calificador con Screen size and Version

 drawable-large-v11 drawable-xlarge-v11 

y más calificador con el Smallest width concept(SW)

  drawable-sw???dp 

Además, en Android V3.0 Honeycomb introdujeron el nuevo concepto de SW(smallest width) en el que los dispositivos se clasifican en ancho de pantalla, por lo que si estamos creando una carpeta llamada drawable-sw360dp entonces el dispositivo con 720dp (ancho o alto) use el recurso de esta carpeta.

por ejemplo, para encontrar el Samsung Galaxy S3 dp en sufijo drawable-sw? dp
Con referencia al cálculo de DP , si desea apoyar su diseño o dibujable a S3, entonces el cálculo dice

px = Ancho del dispositivo = 720
dpi = densidad del dispositivo = 320

fórmula dada

  px = dp * (dpi / 160) 

intercambiando fórmula porque tenemos el valor de px

  dp = px / (dpi / 160) 

ahora poniendo valor,

  dp= 720 / (320/160); dp=360. 

así drawable-sw360dp hará el trabajo

Obtenga la configuración del dispositivo desde GsmArena Sameway, también puede crear una carpeta de acuerdo con la versión de la API de Android del dispositivo, es decir, drawable-hdpi-v11`, por lo que el dispositivo que tiene API11 y es Hdpi utilizará estos recursos.

Consejos adicionales:

  • Usa diseños relativos, dp, sp, y mm

    Unidades dp : píxeles independientes del dispositivo normalizados a 1 píxel físico en una pantalla de 160 ppi, es decir, densidad media. Escalado en tiempo de ejecución. Usar para las dimensiones del elemento de pantalla

    unidades sp : píxeles escalados, especificados como valores de coma flotante, basados ​​en unidades dp, pero con una escala adicional para la configuración de preferencia de tamaño de fuente del usuario. Escalado en tiempo de ejecución. Use para tamaños de fuente

    siempre debe usar RelativeLayout para diseños; AbsoluteLayout está en desuso y no debe usarse.

  • Utilice formatos de imagen apropiados: PNG versus JPEG

    Android "prefers" PNG for bitmap image files, "accepts" JPEG, and "discourages" GIF.

    Sin embargo, PNG y JPEG no son equivalentes. Tienen compensaciones de calidad diferentes, y PNG no siempre es el mejor:

    JPEG puede ofrecer hasta 50% de reducción de tamaño de archivo en PNG, lo cual es significativo si tu aplicación usa imágenes intensas

    Un JPEG “con pérdidas” de mejor calidad puede verse mejor que un PNG “sin pérdidas” altamente comprimido, para el mismo tamaño de archivo

  • Agregue tags a sus imágenes y gráficos para la depuración

  • Utilice el elemento supports-screens

  • Configura tus emuladores con valores reales del dispositivo

    Convencionalmente, los sistemas de escritorio se muestran a 72ppi (Mac) o 96ppi (Windows, Linux). Comparado con el móvil, las pantallas de escritorio siempre son de baja densidad.

    Configure siempre sus emuladores de Android para imitar los valores reales del dispositivo, y siempre configúrelos a escala para emular la densidad del dispositivo.

    En Eclipse, es fácil crear múltiples emuladores (desde la barra de menú de Eclipse, seleccione Ventana> Administrador AVD> Nuevo ) configurado con valores para dispositivos reales:

    Asigne un nombre al emulador para el dispositivo real que está emulando Especifique la resolución, no use tamaños generics incorporados Establezca la densidad del dispositivo para que coincida con el dispositivo real (en el panel de Hardware, configure la propiedad Abstracted LCD como densidad real, siempre un valor entero)

    Cuando inicie el dispositivo, siempre seleccione Escalar pantalla a tamaño real y escriba la dimensión de la pantalla real en pulgadas.

    Si no configura la densidad del dispositivo, el emulador se configura de manera predeterminada como de baja densidad y siempre carga recursos específicos de ldpi. La resolución (dimensiones de píxeles) será correcta, pero sus recursos de imágenes dependientes de la densidad no se mostrarán como se esperaba.

    Por supuesto, nada de lo que haga reproducirá una calidad de imagen de mayor densidad en una pantalla de escritorio de menor densidad.

Aquí están los datos recostackdos durante un período de 7 días que finaliza el 1 de octubre de 2012. Para ver la última estadística sobre la versión de la plataforma Android, vaya a aquí

Basado en el tamaño de pantalla

enter image description here

Basado en la densidad de pantalla

enter image description here

Los diseñadores deben crear diseños base de

base size of mdpi devices * density conversion factor of highest supported density bucket
El tamaño de la pantalla size.Base es de 320 X 480 px y los intervalos de densidad son los siguientes:

  • ldpi: 0.75
  • mdpi: 1.0 (densidad base)
  • hdpi: 1.5
  • xhdpi: 2.0
  • xxhdpi: 3.0
  • xxxhdpi: 4.0

Y para hacer frente al espacio adicional disponible en los dispositivos Android, se deben usar componentes elásticos en ambas direcciones (horizontal y vertical). La información detallada está disponible aquí:

http://vinsol.com/blog/2014/11/20/tips-for-designers-from-a-developer/