0

Je suis un peu confus par l'approche Androids pour prendre en charge plusieurs écrans. J'ai lu la documentation officielle supportant plusieurs écrans plusieurs fois mais je ne comprends pas complètement le concept.Comment trouver le plus haut possible Résolution d'image pour prendre en charge plusieurs écrans

Dans mon application de test, chaque question doit avoir une image. Au total, il y aura 255 images. L'application ne prend en charge que les paysages et les smartphones de toutes les tailles d'écran (sans tablettes).

enter image description here

Maintenant, mon concepteur veulent savoir la plus haute résolution possible de l'image pour acheter des images cette semaine. Je souhaite implémenter toutes les images dans la résolution la plus élevée, car Android met automatiquement à l'échelle les tirages si le périphérique ne correspond pas à la résolution applicable. Sinon, il doit acheter plusieurs images.

Donc, mon problème est que je ne sais pas comment trouver la plus haute résolution pour la question Image.

Comment dois-je procéder?

+1

1px = 1DP @ 160dpi (mdpi), tous les autres ne sont que des échelles de cela, hdpi = 1,5, xhdpi = 2, xxhdpi = 3 & xxxhdpi = 4 fois. Les tailles d'écran varient d'un fabricant à l'autre - vous devriez vraiment vous occuper de "tailles de godet" - pensez toujours en termes de dp (mdpi étant la base), pas dpi. –

Répondre

2

Étape # 1: Déterminer la taille de votre image sera, en pixels indépendants de la densité (dp), en fonction de l'écran que vous tailles souhaitez soutenir (small, normal, large, xlarge) et la conception de votre interface graphique. Ce sera basé en partie sur the sizes in dp associated with those screen size categories:

  • xlarge écrans sont au moins 960dp x 720dp
  • large écrans sont au moins 640dp x 480dp
  • normal écrans sont au moins 470dp x 320dp
  • small écrans sont au moins 426dp x 320dp

Étape # 2: Déterminez quelle est la densité maximale pour laquelle vous voulez avoir un rtwork (par opposition à un suréchantillonnage Android d'une densité plus faible). Étape # 3: Compte tenu de la taille de votre image en dp et de la densité maximale désirée, déterminez la résolution maximale en pixels.

Par exemple:

  • à l'étape 1, vous décidez que vous ne fonctionne qu'avec small et normal écrans, et compte tenu de la conception de votre interface graphique, votre image sera 120dp x 90dp

  • à l'étape 2, vous décidez que votre densité maximale que vous allez vous inquiéter est xhdpi (320dpi = deux fois la base dp de 160dpi)

  • le résultat t pour l'étape # 3 est 240px x 180px

+0

Merci. J'ai donc décidé de prendre en charge les tailles d'écran petites, normales et grandes et la densité maximale sera de xxxhdpi. Mais comment obtenez-vous 120dp x 90dp à l'étape 1?Dans votre exemple, vous choisissez xhdpi avec 320dpi. Pourquoi le résultat de l'étape 3 est-il le double de l'étape 1. –

+1

@ DenoAgüero: "Mais comment obtenez-vous 120dp x 90dp à l'étape 1?" - Vous savez ce qu'est votre interface utilisateur. Je ne le fais pas, ni personne d'autre. Vraisemblablement, vous avez un 'ImageView', et probablement, vous avez des règles pour le dimensionner. "Pourquoi le résultat de l'étape 3 est-il deux fois plus important que celui de l'étape 1" - parce que 320 est deux fois plus que 160. 'dp', comme les pixels CSS, fonctionne sur une base de 160 dpi. – CommonsWare

+0

Mon ImageView a une largeur de 150 dp et pour la hauteur j'utilise wrap_content. Dois-je déterminer la hauteur en dp? Si je dis que la hauteur est de 90 dp et que ma densité maximale est de 640 (xxxhdpi), la résolution maximale sera de 360x600. Est-ce exact? –