30 votes

Quelle doit être la résolution de mes écrans d'accueil Android ?

Je suis en train de créer un écran de démarrage qui s'affichera pendant le chargement de mon application Android. J'aimerais le créer à la bonne taille afin qu'Android ne l'agrandisse ou le réduise pas automatiquement pour l'adapter à l'écran. (Il s'agit d'une image bitmap, une photographie d'une peinture à l'huile, je ne peux donc pas la transformer en un patch neuf).

Mais il y a au moins trois tailles d'écran importantes qui m'intéressent : 320x480, 480x854 (Droid) et 480x800 (Nexus One).

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

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

32voto

Christopher Orr Points 58514

Vous n'avez pas à vous soucier de la taille absolue de l'écran, ni des barres d'état, ni de quoi que ce soit d'autre - c'est la raison pour laquelle nous avons des images en neuf parties.

Il s'agit essentiellement d'un logo sur un fond transparent, avec du texte en bas de page.

J'ai ensuite coupé une bonne partie de l'espace sur les bords supérieurs et latéraux, puis j'ai créé une bordure en neuf points 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.


Éditer 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 il s'agit d'une méthode qui ne permet pas de déterminer la taille de l'écran. obsolète .

De même qu'il existe drawable-hdpi y -ldpi il est également possible d'utiliser des qualificateurs de ressources drawable-HHHxWWW - la plus grande dimension du pixel venant en premier.

par exemple drawable-800x480 y drawable-854x480

6voto

jqpubliq Points 7677

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 m'en soucierais pas personnellement. Les mises en page devraient être faites en dip puisque tous les écrans Android sont en 320x480 dip je crois, et Android maintient très bien le ratio d'aspect entre les appareils grâce à cela d'après mon expérience. Un splash 480x800 paramétré pour remplir le parent a été assez fiable sur le N1 et le droid d'après ce que j'ai pu constater.

1voto

Yoel Gluschnaider Points 374

Une autre solution que j'ai mise en œuvre consiste à placer une ImageView qui remplit l'écran (largeur et hauteur "MATCH_PARENT") avec une échelle de type "centerCrop". De cette manière, l'image n'est pas étirée mais recadrée sur les bords. Essayez de ne pas placer de contenu important (logos et autres) près des bords. S'il s'agit d'une photographie, j'espère que les bords sont "consommables" et peuvent être recadrés.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X