web-dev-qa-db-fra.com

Quelle résolution mes écrans de démarrage Android doivent-ils être?)

Je crée un écran de démarrage qui s'affichera pendant le chargement de mon Android application. Je voudrais le créer à la bonne taille pour que Android ne le fasse pas) redimensionnez-le automatiquement pour l'adapter à l'écran (c'est une image bitmap, une photographie d'une peinture à l'huile, donc je ne peux pas simplement la transformer en neuf patchs).

Mais il y a au moins trois tailles d'écran importantes qui me tiennent à cœur: 320x480, 480x854 (Droid) et 480x800 (Nexus One).

J'ai lu la documentation sur prenant en charge plusieurs tailles d'écran , mais je ne vois toujours pas comment je suis censé configurer différents écrans de démarrage pour Droid/Nexus one (ce sont deux ressources "hdpi" en ce qui concerne Android est concerné), et je ne sais pas exactement quelle taille mon écran de démarrage devrait être dans tous les cas. (Quelle est la hauteur de la barre de titre/menu du système d'exploitation dans Droid? N1? )

Quelle taille dois-je faire ces images et comment dire à Android d'utiliser la bonne taille sur un écran donné?

30
Dan Fabulich

Vous n'avez pas à vous soucier de la taille absolue de l'écran ou des barres d'état ou quoi que ce soit - c'est pourquoi nous avons des images à neuf patchs.

Ce que j'ai fait, c'est avoir une image qui a l'air bien pour chaque résolution - essentiellement un logo sur un fond transparent, avec du texte en bas.

Ensuite, j'ai coupé beaucoup d'espace sur les bords supérieur et latéral, j'ai fait une bordure de neuf patchs autour de l'image, avec un seul pixel près des bords gauche, droit et supérieur. Cela permet à l'image de s'étendre uniformément sur les côtés et en haut pour remplir l'écran.


Modifier , en réponse au commentaire de Dan ci-dessous:

Oui, il existe un moyen de déterminer quels graphiques doivent être utilisés pour quelles tailles d'écran explicites, mais c'est déconseillé .

Tout comme il y a drawable-hdpi et -ldpi qualificatifs de ressource, il est également possible d'utiliser drawable-HHHxWWW - la plus grande dimension de pixel venant en premier.

par exemple. drawable-800x480 et drawable-854x480

32
Christopher Orr

D'accord, tout d'abord: vous pouvez trouver le modèle de l'appareil via Android.os.Build et l'utiliser pour déterminer l'image à afficher.

Deuxièmement, je ne me dérangerais pas personnellement. Les mises en page doivent être effectuées par immersion, car chaque Android écran est de 320 x 480 dip je crois, et Android maintient très bien le rapport d'aspect entre les appareils grâce à cela dans mon expérience. Les éclaboussures 480x800 définies pour remplir le parent ont été assez fiables à la fois sur N1 et sur le droïde pour autant que j'ai rencontré.

6
jqpubliq

Une autre solution que j'ai implémentée est de mettre une ImageView qui remplit l'écran (largeur et hauteur à la fois "MATCH_PARENT") avec le type d'échelle "centerCrop". De cette façon, l'image n'est pas étirée mais recadrée le long des bords. Essayez de ne pas mettre de contenu important (logos et trucs comme ça) près des bords. S'il s'agit d'une photographie, j'espère que les bords sont "consommables" et peuvent être rognés.

1
Yoel Gluschnaider