Problematica de Pantallas en Android
-
Upload
eduardo-perdomo -
Category
Documents
-
view
232 -
download
0
Transcript of Problematica de Pantallas en Android
-
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