86 votes

sur android taille de l'image et des actifs tailles

J'ai besoin de clarifier des doutes à propos de l'image de l'actif pour mon application,

si je spécifier dans un fichier xml que la hauteur de quelque chose [image] est de 50 dip hauteur

quel type d'écran doit-je choisir le dossier de ressources?

drawable, hdpi, ldpi, mdpi, xhdpi,

pour avoir les 50 px de hauteur de l'image,

et quel est le pourcentage pour les plus grands, les plus petits de la taille des images par rapport à l'image de base,

comme dans iOS, @2x, est littéralement à 2 fois la taille de l'image, et vous dire par programmation à la taille normale,

merci!

371voto

kcoppock Points 57219

mdpi est la masse volumique de référence-qui est, 1 px sur un mdpi affichage est égal à 1 dip. Le ratio de l'actif de mise à l'échelle est:

ldpi | mdpi | tvdpi | hdpi | xhdpi | xxhdpi | xxxhdpi
0.75 | 1    | 1.33  | 1.5  | 2     | 3      | 4

Même si vous n'avez pas vraiment besoin de s'inquiéter tvdpi sauf si vous êtes en développement, spécifiquement pour la Google TV ou l'original de la Nexus 7 -- mais même Google recommande simplement à l'aide d' hdpi de l'actif.

Ce que cela signifie est que si vous êtes en train de faire un 48dip de l'image et du plan de charge jusqu'à xhdpi resolution, vous devriez commencer avec un 96px image (144px si vous voulez natif actifs pour xxhdpi) et de faire les images suivantes pour les densités:

ldpi    | mdpi    | tvdpi    | hdpi    | xhdpi     | xxhdpi    | xxxhdpi
36 x 36 | 48 x 48 | 64 x 64  | 72 x 72 | 96 x 96   | 144 x 144 | 192 x 192

Et ceux-ci devraient afficher à peu près la même taille sur n'importe quel appareil, à condition que vous avez placé dans la densité des dossiers spécifiques (par exemple, drawable-xhdpi, drawable-hdpi, etc.)

Pour référence, les densités de pixels sont:

ldpi  | mdpi  | tvdpi  | hdpi  | xhdpi  | xxhdpi  | xxxhdpi
120   | 160   | 213    | 240   | 320    | 480     | 640

22voto

Ben Marten Points 893

Basé sur kcoppock's réponse que j'ai créé le script suivant pour redimensionner automatiquement toutes les images à la bonne taille et les copier dans le Android drawable-* - dossiers!

Créer un script shell et collez le code suivant:

createAndroidImages.sh

#!/bin/bash

read -p "Please enter the subfolder of the original images? " folder
read -p "How many DP (width) should the image have? " dp

for i in $(find $folder/. -type f -name "*[A-Z]*"); do mv "$i" "$(echo $i | tr A-Z a-z)"; done

mkdir drawable-ldpi
mkdir drawable-mdpi
mkdir drawable-tvdpi
mkdir drawable-hdpi
mkdir drawable-xhdpi
mkdir drawable-xxhdpi
mkdir drawable-xxxhdpi

cp $folder/* drawable-ldpi/
cp $folder/* drawable-mdpi/
cp $folder/* drawable-tvdpi/
cp $folder/* drawable-hdpi/
cp $folder/* drawable-xhdpi/
cp $folder/* drawable-xxhdpi/
cp $folder/* drawable-xxxhdpi/

sips -Z $(echo $dp*3/4 | bc) drawable-ldpi/*
sips -Z $(echo $dp | bc) drawable-mdpi/*
sips -Z $(echo $dp*4/3 | bc) drawable-tvdpi/*
sips -Z $(echo $dp*3/2 | bc) drawable-hdpi/*
sips -Z $(echo $dp*2 | bc) drawable-xhdpi/*
sips -Z $(echo $dp*3 | bc) drawable-xxhdpi/*
sips -Z $(echo $dp*4 | bc) drawable-xxxhdpi/*

Mettre votre script dans un dossier et les originaux de vos images dans un sous-dossier par ex.:

/
.. createAndroidImages.sh
.. originalImages/
....a123.png
....b456.png

Exécuter le script shell dans le terminal: sh createAndroidImages.sh

Pour copier les images créées directement sur votre Android Studio de Projet:

cp -R drawable-* ~/AndroidStudioProjects/ESCRating/app/src/main/res/

Vous avez terminé! Espérons que cela aide quelqu'un!

P. S. Veuillez noter que les images d'origine doit avoir au moins quatre fois la largeur, en pixels, de la largeur souhaitée en dpi (par exemple 4 (facteur xxxhdpi) * 30dpi => 120px) pour des résultats optimaux.

4voto

geng Points 39

kcoppock a fait un excellent travail en expliquant Andorid écran densités. J'aimerais juste ajouter un point de plus au sujet de la question d'origine.

Tablette Android launcher icon utilise une densité de seau.

Selon le développeur de Google Nick Boucher Google+ post

Le magnifique écran de la Nexus 10 tombe dans le XHDPI densité seau. Sur les tablettes, le Lanceur utilise des icônes à partir d'une densité de seau [0] pour les rendre un peu plus grande. Pour vous assurer que votre icône de lancement (sans doute vos applications les plus importantes de l'actif) sont croquants, vous devez ajouter un 144*144px icône dans le drawable-xxhdpi ou drawable-480dpi dossier.

Trouver la source ici

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