Problematica de Pantallas en Android

Embed Size (px)

Citation preview

  • 7/26/2019 Problematica de Pantallas en Android

    1/18

    Problematica de Pantallas en Android

    Multiples Dispositivos, Multiples

    PantallasAndroid corre en una variedad de dispositivos que ofrecen diferentes tamaos de pantalla y

    densidades. Para las aplicaciones, el sistema Android ofrece un entorno de desarrollo

    coherente en todos los dispositivos y se encarga de la mayor parte del trabajo para ajustar la

    interfaz de cada usuario de la aplicacin a la pantalla en la que se muestra. Al mismo tiempo,

    el sistema proporciona APIs que le permiten controlar la interfaz de usuario de la aplicacin

    para tamaos de pantalla y densidades especficas con el fin de optimizar el diseo de interfaz

    de usuario. Por ejemplo, es posible que desee una interfaz de usuario para tablets que es

    diferente de la interfaz de usuario para los tel!fonos.

    Aunque el sistema lleva a cabo la ampliacin y cambio de tamao pantallas, el desarrollador

    debe hacer el esfuerzo para optimizar su aplicacin para los diferentes tamaos de pantalla y

    densidades. "e este modo, se ma#imiza la e#periencia del usuario para todos los dispositivos

    dando la sensacin de que su aplicacin fue diseada realmente para su/sus dispositivos en

    lugar de ser un mero ajuste a la pantalla en sus dispositivos.

    $on este documento se pretende permitir la creacin de aplicaciones que se muestren

    correctamente en todas las configuraciones de pantalla posibles. desde un unico archivo.apk

    Para una mayor profundidad sobre este tema se recomienda la lectura de la%ua &ficial de

    Android del "esarrollador

    Descripcin del Soporte de Pantallas'sta seccin proporciona una visin general del soporte de Android para m(ltiples pantallas,

    incluyendo) una introduccin a los t!rminos y conceptos utilizados en este documento y en la

    API y un resumen de las configuraciones de pantalla que el sistema soporta.

    Trminos y conceptosTamao de la pantalla

    *amao fsico real, se mide como la diagonal de la pantalla.

    Para simplificar, los tamaos de pantalla en Android se dividen en + grupos) small,

    normal, large, yextra large.

    Densidad de pantalla

    a cantidad de pi#eles dentro de un -rea fsica de la pantalla referida generalmente

    como dpi (puntos por pulgada). Por ejemplo, una /baja/ densidad pantalla tiene

    menos p#eles en un -rea determinada fsico, frente a una pantalla de densidad

    /normal/ o /alta/.

    http://developer.android.com/guide/practices/screens_support.htmlhttp://developer.android.com/guide/practices/screens_support.htmlhttp://developer.android.com/guide/practices/screens_support.htmlhttp://developer.android.com/guide/practices/screens_support.htmlhttp://developer.android.com/guide/practices/screens_support.html
  • 7/26/2019 Problematica de Pantallas en Android

    2/18

    Para simplificar, las densidades de pantalla en Android se dividen en + grupos) low,

    medium, high, y extra high

    Figura 1.Ilustracin de cmo Android aproximadamente asigna tamaos reales y densidades de pantalla (las cifras no sonexactas).

    Orientacin

    a orientacin de la pantalla desde el punto de vista del usuario. 'ste puede

    serhori!ontal (landscape) o vertical (portrait). *enga en cuenta que no slo losdiferentes dispositivos operan en diferentes orientaciones por defecto, pero se puede

    cambiar la orientacin en tiempo de ejecucin cuando el usuario gira el dispositivo.

    Resolucin

    'l n(mero total de p#eles fsicos en una pantalla. as aplicaciones deben referirse

    (nicamente mediante el tamao de pantalla y la densidad, encuadrandolas para los

    diferentes grupos de tamaos y densidades de pantalla.

    Pixeles independientes de la densidad (dp)

    0na unidad de pi#el virtual que se debe utilizar en la definicin de diseo de interfaz de

    usuario, para e#presar dimensiones del diseo o la posicin de una manera

    independiente de la densidad.

    a densidad de un pi#el independiente es equivalente a un p#el fsico en una pantalla

    de 123 dpi, que es la densidad de lnea de base asumida por el sistema para una

    pantalla de densidad /medium/. 'n tiempo de ejecucin, el sistema maneja de manera

    transparente cualquier escala de las unidades de "P, seg(n sea necesario, en base a

    la densidad real de la pantalla en uso. a conversin de las unidades de "P a p#eles

    de la pantalla es simple) px = dp * (dpi / 160). Por ejemplo, en una pantalla de

    4+3 dpi, 1 dp es igual a 1,5 pi#eles fsicos.Siempre se de"e usar unidades dp la

    hora de de#inir la inter#a! de usuario de la aplicacin para garanti!ar la correcta

    visuali!acin de la misma en pantallas con di#erentes densidades.

    $ango de pantallas compati"les

    Para optimizar la interfaz de usuario de la aplicacin para los

    diferentes tamaos de pantalla y densidades se debe proporcionar

    diseos alternativos para algunos de los diferentes tamaos y

    diferentes im-genes para diferentes densidades. 'n tiempo de

    ejecucin, el sistema utiliza los recursos adecuados para su

  • 7/26/2019 Problematica de Pantallas en Android

    3/18

    aplicacin, en funcin del tamao o densidad de la pantalla del

    dispositivo.

    6o es necesario proporcionar recursos alternativos para cada

    combinacin de tamao de pantalla y densidad. 'l sistema

    proporciona slidas funciones de compatibilidad que pueden manejar

    la presentacin de su aplicacin en cualquier pantalla del dispositivo,

    siempre y cuando se haya implementado la interfaz de usuario

    utilizando t!cnicas que le permiten cambiar el tamao. 7as

    informacion.

    %ndependencia de densidad

    8u aplicacin alcanza la /independencia de densidad/ cuando se

    preserva el tamao fsico 9desde el punto de vista del usuario: de

    elementos de la interfaz de usuario cuando se muestra en las

    pantallas con diferentes densidades.

    7antener la independencia densidad es importante porque, sin ella,

    un elemento de interfaz de usuario 9tal como un botn: aparece

    fsicamente m-s grande en una pantalla de baja densidad y m-s

    pequeo en una pantalla de alta densidad. *ales cambios

    relacionados con la densidad del tamao pueden causar

    problemas de diseo y usabilidad en su aplicacin. as figuras 4 y ;

    muestran la diferencia entre una aplicacin cuando no proporciona

    independencia de la densidad y cuando lo hace, respectivamente.

    &igura ''jemplo de aplicacin sin soporte para diferentes densidades,

    como se muestra en pantallas de baja, media y alta densidad.

    http://developer.android.com/guide/topics/resources/providing-resources.htmlhttp://developer.android.com/guide/topics/resources/providing-resources.htmlhttp://developer.android.com/guide/topics/resources/providing-resources.htmlhttp://developer.android.com/guide/topics/resources/providing-resources.html
  • 7/26/2019 Problematica de Pantallas en Android

    4/18

    &igura 'jemplo de aplicacin con un buen soporte para diferentes

    densidades 9que es independiente de la densidad:, como se muestra en

    las pantallas de baja densidad, media y alta.

    'l sistema ayuda a que su aplicacin Android lograr la independencia

    densidad de dos maneras)

    7ediante el sistema de escalas dp 9seg(n sea apropiado para la

    densidad de pantalla actual:

    a e#istencia de los recursos del sistema para los tamaos y

    densidades adecuados.

    mo soportar laspantallas m*ltiples ennuestras aplicaciones'l sistema Android se encarga de la mayor parte del trabajo para

    hacer que su aplicacin se muestre correctamente en cadaconfiguracin de pantalla seg(n el caso pero para manejar con m-s

    gracia diferentes configuraciones de pantalla tambi!n se debe)

    Declarar expl+citamente en el mani#est los tamaos de pantalla

    -ue admite la aplicacin

    Al declarar que tamaos de pantalla soporta la aplicacin puede

    asegurar que slo los dispositivos con dichas pantallas pueden

    descargar la aplicacin.

    Para declarar los tamaos de pantalla de la aplicacin admite, debe

    incluir el elementoelemento en el

    archivo mani#iest.

    Proporcionar di#erentes diseos para di#erentes tamaos de

    pantalla

    Por defecto, Android redimensiona el diseo de aplicaciones para

    adaptarse a la pantalla del dispositivo actual. 'n la mayora de los

    casos, esto funciona bien. 'n otros casos, la interfaz de usuario no

    puede tener un aspecto tan bueno, y podra necesitar ajustes para

    http://developer.android.com/guide/topics/manifest/supports-screens-element.htmlhttp://developer.android.com/guide/topics/manifest/supports-screens-element.htmlhttp://developer.android.com/guide/topics/manifest/supports-screens-element.html
  • 7/26/2019 Problematica de Pantallas en Android

    5/18

    diferentes tamaos de pantalla. Por ejemplo, en una pantalla m-s

    grande, es posible que desee ajustar la posicin y el tamao de

    algunos elementos para aprovechar el espacio de pantalla

    adicional, o en una pantalla m-s pequea, puede que tenga que

    ajustar el tamao para que todo quepa en la pantalla.

    os calificadores de configuracin que puede utilizar paraproporcionar recursos especficos de tamao

    son small, normal, large, y xlarge. Por ejemplo, los diseos

    para una pantalla e#tra grande debe ir en layout-xlarge/.

    A partir de Android ;.4 9nivel de API 1;:, los grupos de tamaos

    superiores est-n en desuso y en su lugar debe utilizar

    el sdpcomo calificativo para definir el ancho m-s pequeo

    requerida por sus recursos. Por ejemplo, si el diseo requiere al

    menos 233dp de ancho de la pantalla, debe colocarlo en layout-

    s600dp/.

    'l uso de estas nuevas t!cnicas para la declaracin de los recursosde diseo se discute en la seccin "eclaring *ablet ayouts for

    Android ;.4.

    Proporcionar drawa"les di#erentes para densidades de

    pantalla di#erentes

    Por defecto, Android escala los dra

  • 7/26/2019 Problematica de Pantallas en Android

    6/18

    o es el nombre del recurso est-ndar

    9como draa%leolayout:.

    o a la vez, simplemente

    separado cada calificador con un guin.

    4. %uardar la configuracin adecuada de recursos especficos en este

    nuevo directorio. os archivos de recursos se debe llamar

    e#actamente igual que los archivos de recursos predeterminados.

    Ta"la /calificadores de configuracin que le permiten proporcionar

    recursos especiales para configuraciones de pantalla.

    $aracterstica

    de la pantalla

    $alificado

    r

    "escripci

    *amao small =ecursos para las pantallas de tam

    normal =ecursos para pantallas de tamao

    tamao de referencia.:

    large =ecursos para pantallas de tamao

    xlarge =ecursos para pantallas de tamao

    "ensidad ldpi =ecursos para pantallas de baja de

    ppp:.

    mdpi =ecursos para pantallas de densid123dpi:. 9'sta es la densidad base

    $dpi =ecursos para pantallas de alta de

    ppp:.

    x$dpi =ecursos para pantallas de muy al

    9>;43dpi:.

    nodpi =ecursos para todas las densidade

    independientes de la densidad de lescala los recursos etiquetados con

    independientemente de la densidad

    tdpi =ecursos para las pantallas en alg(

    hdpi, apro#imadamente 41;dpi.

  • 7/26/2019 Problematica de Pantallas en Android

    7/18

    &rientacin land os recursos para las pantallas de

    port os recursos para las pantallas de

    Por ejemplo, la siguiente es una lista de directorios de recursos en

    una aplicacin que ofrece diferentes diseos para diferentes tamaos

    de pantalla y diferentes dra

  • 7/26/2019 Problematica de Pantallas en Android

    8/18

    ejemplo, una fila de botones podran no encajar en el ancho de la

    pantalla en un dispositivo de pantalla pequea. 'n este caso, debe

    proporcionar un diseo alternativo para pantallas pequeas que

    ajuste el tamao o la posicin de los botones.

    $uando se prueba en una pantalla e#tra grande, es posible darse

    cuenta de que su diseo no hace un uso eficiente de la granpantalla. 'n este caso, usted debe proporcionar una disposicin

    alternativa para grandes pantallas que proporciona una interfaz de

    usuario rediseada.

    B, cuando se prueba en posicin horizontal respecto a la

    orientacin vertical, puede notar que los elementos de interfaz de

    usuario colocados en la parte inferior de la pantalla para la

    orientacin vertical deben estar en el lado derecho de la pantalla

    con orientacin horizontal.

    'n resumen, usted debe estar seguro de que el diseo de la

    aplicacin)

    8e adapta en pantallas pequeas 9para que los usuarios puedan

    utilizar la aplicacin:

    'st- optimizado para pantallas m-s grandes para aprovechar el

    espacio de pantalla adicional

    'st- optimizado tanto para la orientacin vertical y paisaje

    8i la interfaz de usuario utiliza mapas de bits que necesitan adaptarse

    al tamao de la vista 9como la imagen de fondo de un botn:, se debe

    utilizar archivos 6inePatch.

    Drawa"les alternativos

    &igura 2"ra

  • 7/26/2019 Problematica de Pantallas en Android

    9/18

    las aplicaciones tiene un icono de lanzador y el icono debe lucir bien

    en todas las densidades de pantalla. "el mismo modo, si se incluyen

    otros dra

  • 7/26/2019 Problematica de Pantallas en Android

    10/18

    utilizado slo cuando hay al menos 233dp de ancho disponible para la

    interfaz de usuario de la aplicacin.

    .sando nuevos cali#icadores detamao

    as configuraciones de recursos diferentes que se pueden especificar

    en funcin del espacio disponible para su diseo se resumen en la

    tabla 4. 'stos calificadores nuevos ofrecen un mayor control sobre los

    tamaos de pantalla de su aplicacin es compatible, en comparacin

    con los tradicionales grupos de tamao de pantalla 9pequea, grande

    normal, y #large:.

    Ta"la 'calificadores de la nueva configuracin para el tamao de

    pantalla 9introducidas en Android ;.4:.

    Pantalla deconfiguracin

    Falores clasificatorios "e

    smallestGidth sdp

    'jemplos)s600dps0dp

    'l tamao fundam

    como se indica po

    del -rea de pantal

    concreto, smallest

    m-s corto de altura

    y el ancho 9tambi!

    como el /menor an

    pantalla:. Puede upara garantizar qu

    de la orientacin aaplicacin tiene po

    ancho para que la

    Ancho de

    pantalladisponible

    dp

    'jemplos)0dp10+dp

    'specifica un anch

    las unidades de "deben ser utilizadoel valor. Falor

    sistema para que lcuando la orientac

    entre horizontal y v

    ancho real de corr

    para su interfaz de

    Altura de $dp 'specifica una altu

  • 7/26/2019 Problematica de Pantallas en Android

    11/18

    pantalla

    disponible 'jemplos)$0dp$10+dpetclas unidades de "

    deben ser utilizadoel valor. Falor

    sistema para que lcuando la orientac

    entre horizontal y valtura real de corri

    para su interfaz de

    Para m-s discusin sobre estos calificadores vease Providing

    =esources

    70emplos de con#iguracin

    Para ayudar a apuntar algunos de sus diseos para diferentes tipos

    de dispositivos, aqu vemos algunas cifras para anchos de pantalla

    tpicos)

    ;43dp) una pantalla de tel!fono normal 94+3#;43 ldpi, ;43#+C3

    mdpi, +C3#C33 hdpi, etc:.

    +C3dp) una tablet t

  • 7/26/2019 Problematica de Pantallas en Android

    12/18

    &bserve que los (ltimos dos conjuntos de recursos de ejemplo de uso

    de la /anchura m-s pequea/ calificador,s dp, que especifica

    el m-s pequeo de los dos lados de la pantalla, independientemente

    de la orientacin actual del dispositivo. As, utilizando s dpes

    una forma sencilla de especificar el tamao total de la pantalladisponible para su distribucin al ignorar orientacin de la pantalla.

    8in embargo, en algunos casos, lo que podra ser importante para su

    diseo es e#actamente la cantidad de anchura o altura

    es actualmentedisponible. Por ejemplo, si usted tiene un diseo de

    dos paneles con dos fragmentos de lado a lado, es posible que desee

    utilizar siempre que la pantalla ofrece al menos 233dp de ancho, si el

    dispositivo est- en orientacin horizontal o vertical. 'n este caso, los

    recursos podra tener este aspecto)

    res/layout/main&actiity.xml , or $andsets

    (smaller t$an 600dp aaila%le idt$)

    res/layout-600dp/main&actiity.xml , ulti-pane (anyscreen it$ 600dp aaila%le idt$ or more)

    &bserve que el segundo grupo est- utilizando el /ancho disponible/

    calificador, dp. "e esta manera, un solo dispositivo puede

    realmente utilizar ambos diseos, dependiendo de la orientacin de la

    pantalla 9si la anchura disponible es al menos 233dp en una

    orientacin y menos de 233dp en la otra orientacin:.

    8i la altura disponible es una preocupacin para usted, entoncesusted puede hacer lo mismo con el $ dpcalificador. &, incluso

    combinan la dpy $ dpcalificadores si necesita ser muy

    especfico.

    5a declaracin de apoyo tamao depantalla

    0na vez que haya aplicado sus diseos para diferentes tamaos de

    pantalla, es igualmente importante que se declare en el archivo

    manifest que pantallas admite la aplicacin.

    Hunto con la fase de clasificacin de la nueva configuracin de tamao

    de pantalla, Android ;.4 introduce nuevos atributos para el supports

    screensJelemento manifiesto)

    android:requiresSmallestWidthDp

    'specifica el smallestGidth mnimo requerido. 'l smallestGidth es la dimensin m-s

    corta del espacio de la pantalla 9en unidades dp:. 9Por lo general, el valor que se

    http://developer.android.com/guide/topics/manifest/supports-screens-element.htmlhttp://developer.android.com/guide/topics/manifest/supports-screens-element.htmlhttp://developer.android.com/guide/topics/manifest/supports-screens-element.html#requiresSmallesthttp://developer.android.com/guide/topics/manifest/supports-screens-element.htmlhttp://developer.android.com/guide/topics/manifest/supports-screens-element.htmlhttp://developer.android.com/guide/topics/manifest/supports-screens-element.html#requiresSmallest
  • 7/26/2019 Problematica de Pantallas en Android

    13/18

    proporciona para esto es el /ancho m-s pequeo/ que el diseo soporta,

    independientemente de la orientacin actual de la pantalla.:

    Por ejemplo, si su aplicacin es slo para dispositivos tipo tableta con 233dp de menor

    anchura disponible)

  • 7/26/2019 Problematica de Pantallas en Android

    14/18

    / .se wrap:content, #ill:parent, o la unidad de DPpara dimensiones del diseo

    Al definir el androidlayout&idt$y 5ndroidlayout&$eig$tpara vistas en un archivo

    de formato K7, utilizando 4rap&content4, 4#ill&parent4o unidades dpse garantiza

    que a la vista se le da un tamao apropiado en la pantalla del dispositivo actual.

    Por ejemplo, una vista con un layout&idt$ = 4100dp4mide 133 pi#eles de ancho en la

    pantalla de densidad media y hasta 153 p#eles de ancho en la pantalla de alta densidad, de

    modo que la vista ocupa apro#imadamente el mismo espacio fsico en la pantalla .

    "el mismo modo, se debe preferir el sp9escala independiente de p#eles: para definir

    tamaos de te#to.

    ' ;o utilice valores codi#icados de p+xeles en elcdigo de aplicacin

    Por cuestiones de rendimiento y mantener el cdigo m-s simple, el sistema Android utiliza

    p#eles como unidad est-ndar para e#presar los valores de cota o coordenada. 'so significa

    que las dimensiones de una vista se e#presan siempre en el cdigo mediante p#eles, pero

    siempre se basa en la densidad de pantalla actual. Por ejemplo,

    si my7ie.get2idt$()devuelve 13, la vista es 13 p#eles de ancho en la pantalla actual,

    pero en un dispositivo con una pantalla de mayor densidad, el valor devuelto puede ser 15. 8i

    utiliza valores de los p#eles en el cdigo de aplicacin para trabajar con mapas de bits que no

    est-n preescalados para la densidad de pantalla actual, puede que tenga que escalar los

    valores de los p#eles que se utilizan en el cdigo para que coincida con la fuente de mapa de

    bits sin escala.

    8i su aplicacin manipula mapas de bits o se ocupa de los valores de p#el en tiempo de

    ejecucin, consulte la siguiente seccin sobre $onsideraciones adicionales de densidad.

    ;o utilice 6"solute5ayout

    A diferencia de los

  • 7/26/2019 Problematica de Pantallas en Android

    15/18

    diferentes tamaos de pantalla y proporcionar dra

  • 7/26/2019 Problematica de Pantallas en Android

    16/18

    aplicacin es probable que se ejecute. *ambi!n se puede modificar el tamao predeterminado,

    la densidad y resolucin del emulador para reproducir las caractersticas de cualquier pantalla

    especfica. 'l uso del emulador y las configuraciones personalizadas adicionales le permite

    probar cualquier configuracin de pantalla posible, por lo que no tiene que comprar varios

    dispositivos slo para poner a prueba el soporte de su solicitud de pantalla.

    Para configurar un entorno de prueba debe crear una serie de6

  • 7/26/2019 Problematica de Pantallas en Android

    17/18

    O 'sta piel est- disponible con la plataforma Android ;.3

    Ta"la as diferentes configuraciones de pantalla disponibles a partir de pieles emulador del 8"L

    de Android 9indicadas en negrita: y otras resoluciones representativas.

    Para ver los n(meros relativos de los productos activos que respaldan cualquier configuracin

    de pantalla concreto, consulte los tamaos de pantalla y densidadesde panel.

    &igura *amao y densidad opciones que puede establecer, al iniciar una AF" desde el

    Administrador de AF".

    *ambi!n le recomendamos que pruebe la aplicacin en un emulador que est- configurado

    para ejecutarse en un tamao fsico que se ajusta a un dispositivo real. 'sto hace que sea

    m-s f-cil un montn de comparar los resultados de diferentes tamaos y densidades. Para

    ello es necesario conocer la densidad apro#imada, en ppp, el monitor del ordenador 9por

    ejemplo, un ;3 /monitor "ell tiene una densidad de apro#imadamente E2 ppp:. $uando se

    inicia una AF" desde el Administrador de AF", se puede especificar el tamao de la pantalla

    del emulador y su dpi monitor en las opciones de lanzamiento, como se muestra en la figura D.

    8i desea probar la aplicacin en una pantalla que utiliza una resolucin o la densidad no est-

    soportado por las pieles incorporadas, puede crear un AF" que utiliza una resolucin

    personalizada o densidad. Al crear el AF" desde el Administrador de AF", especifique la

    resolucin, en lugar de seleccionar un fondo integrado.

    8i est- iniciando su AF" desde la lnea de comandos, puede especificar la escala para elemulador con la escalaopcin. Por ejemplo)

    emulador - ad - escala de :6 ppp

    Para refinar el tamao del emulador, en su lugar puede pasar la escalaopcin un n(mero

    entre 3,1 y ; que representa el factor de escala deseado.

    http://developer.android.com/resources/dashboard/screens.htmlhttp://developer.android.com/resources/dashboard/screens.htmlhttp://developer.android.com/resources/dashboard/screens.html
  • 7/26/2019 Problematica de Pantallas en Android

    18/18

    Para obtener m-s informacin sobre la creacin AF"8 desde la lnea de comandos,

    consulteAdministracin de AF"8 desde la lnea de comandos

    http://developer.android.com/tools/devices/managing-avds-cmdline.htmlhttp://developer.android.com/tools/devices/managing-avds-cmdline.html