Android: taille de l'image d'arrière-plan (en pixels) qui prend en charge tous les appareils

114

Je crée une application qui fonctionnera sur tous les appareils Android. Je souhaite créer des graphiques xhdpi pour mon application. Mon application est en plein écran. Je suis confus dans la création de graphiques. quelqu'un peut-il me dire les meilleures tailles de mon image d'arrière-plan en pixels.

Par exemple:

  • xhdpi: 720x1280 px
  • hdpi: 480 x 800 px
  • mdpi: 320 x 480 px
  • ldpi: 240x320 px

Suggérez-moi les meilleures tailles qui apparaîtront sur tous les appareils. Parce que mes graphismes sont au cœur de mon application.

Je veux que chaque appareil obtienne la meilleure image qu'il souhaite. Android ne sera pas impliqué dans la compression ou l'expansion de l'image.

Ahmed Nawaz
la source
3
Lire la prise en charge des écrans multiples Android de la documentation Android, ils donnent la norme pour l'interface utilisateur
RajeshVijayakumar
Utilisez cette solution unique, la meilleure pour tous les anciens et nouveaux appareils et pour les appareils à venir. stackoverflow.com/a/40255870/2489061
Umer

Réponses:

199

Voici les meilleures dimensions pour que l'application s'exécute sur tous les appareils. Pour comprendre plusieurs écrans de support, vous devez lire http://developer.android.com/guide/practices/screens_support.html

xxxhdpi: 1280x1920 px
xxhdpi: 960x1600 px
xhdpi: 640x960 px
hdpi: 480x800 px
mdpi: 320x480 px
ldpi: 240x320 px
Veerababu Medisetti
la source
10
XX devrait être 2x HDPI
LarryBud
1
intéressant, le nexus 5 est xxhdpi, mais sa taille d'écran est de 1080x1920
Roman
3
Le LG G3 a une résolution de 1440 x 2560 et utilise xxxhdpi.
Roel
1
C'est le principal problème / défi avec Android, il n'y a pas de taille définie pour hdpi, xhdpi, etc. car chaque fabricant peut créer un téléphone / une tablette de taille différente, contrairement à l'IOS où seule Apple le fabrique. Regardez la section sur la gamme: developer.android.com/guide/practices/…
toidiu
Utilisez cette solution unique, la meilleure pour tous les anciens et nouveaux appareils et pour les appareils à venir. stackoverflow.com/a/40255870/2489061
Umer
63

Matrices d'appareils Android

                            ldpi     mdpi     hdpi    xhdpi    xxhdpi      xxxhdpi
Launcher And Home           36*36    48*48   72*72    96*96    144*144     192*192
Toolbar And Tab             24*24    32*32   48*48    64*64    96*96       128*128
Notification                18*18    24*24   36*36    48*48    72*72       96*96 
Background                 240*320  320*480 480*800  768*1280  1080 *1920  1440*2560 

(Pour une bonne approche moins la taille de la barre d'outils à partir de la hauteur totale de l'écran d'arrière-plan, puis des graphiques de conception des écrans)

Pour plus d'aide (ce lien inclut également les tablettes):

https://design.google.com/devices/

Icônes natives Android (recommandé) Vous pouvez changer la couleur de ces icônes par programmation . https://design.google.com/icons/

Umer
la source
Pourquoi les thèses ne correspondent-elles pas aux multiplicateurs suggérés ici? developer.android.com/training/multiscreen/screendensities#java
Ben
16

Vérifie ça. Cette image s'affiche pour toutes les tailles d'icônes pour différentes tailles d'écran

Taille

Ketan Ramani
la source
4
d'où cela vient-il?
Mohammed Sohail Ebrahim
depuis l'un des sites en surfant
Ketan Ramani
5

J'ai cherché sur Internet les dimensions correctes pour ces densités pour des images carrées, mais je n'ai rien trouvé de fiable.

Si c'est une consolation, me référant à la réponse de Veerababu Medisetti, j'ai utilisé ces dimensions pour SQUARES :)

xxxhdpi: 1280x1280 px
xxhdpi: 960x960 px
xhdpi: 640x640 px
hdpi: 480x480 px
mdpi: 320x320 px
ldpi: 240x240 px
jp093121
la source
Utilisez cette solution unique, la meilleure pour tous les anciens et nouveaux appareils et pour les appareils à venir. stackoverflow.com/a/40255870/2489061
Umer
4

L'outil GIMP est exactement ce dont vous avez besoin pour créer les images pour différents appareils de résolution de pixels.

Suivez ces étapes:

  1. Ouvrez l'image existante dans l'outil GIMP.
  2. Allez dans le menu "Image" et sélectionnez "Mettre l'image à l'échelle ..."
  3. Utilisez la dimension en pixels ci-dessous dont vous avez besoin:

    xxxhdpi: 1280x1920 px

    xxhdpi: 960x1600 px

    xhdpi: 640 x 960 px

    hdpi: 480 x 800 px

    mdpi: 320 x 480 px

    ldpi: 240x320 px

  4. Puis "Exporter" l'image depuis le menu "Fichier".

Sagar Rathod
la source
3

Je crois comprendre que si vous utilisez un Viewobjet (comme supposé par exemple android:windowBackground), Android mettra automatiquement votre image à l'échelle à la bonne taille. Le problème est qu'une mise à l'échelle trop importante peut entraîner des artefacts (à la fois lors de la mise à l'échelle vers le haut et vers le bas) et du flou. En raison des différentes résolutions et ratios d'aspect sur le marché, il est impossible de créer des ajustements «parfaits» pour chaque écran, mais vous pouvez faire de votre mieux pour vous assurer que seul un peu de mise à l'échelle doit être effectué, et ainsi atténuer les effets secondaires indésirables . Alors ce que je ferais, c'est:

  • Respectez le rapport de mise à l'échelle 3: 4: 6: 8: 12: 16 entre les six densités généralisées (ldpi, mdpi, hdpi, etc.).
  • Vous ne devez pas inclure d'éléments xxxhdpi pour vos éléments d'interface utilisateur, cette résolution est destinée uniquement à la mise à l'échelle des icônes du lanceur (donc dossier mipmap uniquement) ... Vous ne devez pas utiliser le qualificatif xxxhdpi pour les éléments d'interface utilisateur autres que l'icône du lanceur. ... bien que par exemple. sur le Samsung edge 7, l'appel getDisplayMetrics().densityrenvoie 4 (xxxhdpi), alors peut-être que cette information est obsolète.
  • Ensuite, regardez les nouveaux modèles de téléphones sur le marché et trouvez ceux qui sont représentatifs. En supposant que le nouveau pixel google est une bonne représentation d'un téléphone Android: il a une résolution de 1080 x 1920 à 441 dpi et une taille d'écran de 4,4 x 2,5 pouces . Ensuite, à partir de la documentation du développeur Android :

    • ldpi (faible) ~ 120dpi
    • mdpi (moyen) ~ 160 dpi
    • hdpi (élevé) ~ 240 dpi
    • xhdpi (très élevé) ~ 320 dpi
    • xxhdpi (extra-extra-élevé) ~ 480 dpi
    • xxxhdpi (extra-extra-extra-élevé) ~ 640 dpi

    Cela correspond à un xxhdpiécran. De là, je pourrais réduire ces 1080 x 1920 par les rapports (3: 4: 6: 8: 12) ci-dessus.

  • Je pourrais également reconnaître que le sous-échantillonnage est généralement un moyen facile de mettre à l'échelle et donc je pourrais vouloir des bitmaps légèrement surdimensionnés regroupés dans mon apk (Remarque: consommation de mémoire plus élevée). En supposant une fois de plus que la largeur et la hauteur de l'écran de pixels sont représentatives, j'augmenterais le 1080x1920 d'un facteur 480/441, laissant ma résolution maximale d'image d'arrière-plan à env. 1200x2100, qui doit ensuite être mis à l'échelle 3: 4: 6: 8: 12.
  • N'oubliez pas que vous n'avez besoin de fournir que des éléments de dessin spécifiques à la densité pour les fichiers bitmap (.png, .jpg ou .gif) et les fichiers Nine-Patch (.9.png). Si vous utilisez des fichiers XML pour définir des ressources dessinables (par exemple des formes), placez simplement une copie dans le répertoire dessinable par défaut.
  • Si jamais vous devez accepter des rapports hauteur / largeur vraiment grands ou impairs, créez également des dossiers spécifiques pour ceux-ci, en utilisant les indicateurs pour cela, par exemple. sw, long, large, Etc.
  • Et pas besoin de dessiner l'arrière-plan deux fois. Définissez donc un style avec<item name="android:windowBackground">@null</item>
Overclover
la source