Lors de la prise en charge de différentes tailles d'écran (densités) dans Android, l'accent est souvent mis sur la création de mises en page différentes pour chaque écran possible. C'EST À DIRE
- ldpi
- mdpi
- hdpi
- xhdpi
- xxhdpi
- xxxhdpi
J'ai conçu une mise en page pour un écran xhdpi comme référence et défini ses dimensions dans dimens.xml . Maintenant, je veux le soutenir pour toutes les tailles d'écran possibles. Comment puis je faire ça?
Pour autant que je sache, je peux utiliser cet outil pour déterminer le dimens.xml approprié pour d'autres tailles d'écran et l'ajouter à mon projet. Est-ce la bonne façon de procéder dans ma situation?
Une autre question, dois-je seulement créer dimens.xml pour les dimensions d'écran ci-dessus? Si oui, qu'est-ce que c'est w820dp
?
Merci de votre aide. Je dois uniquement prendre en charge les téléphones (pas les tablettes ou autres appareils).
dimesn.xml
fichiers différents pour différentes résolutions.W820dp
c'est quelque chose qui prend en charge une version Android différente? Pouvez-vous également me suggérer un tutoriel sur la prise en charge de différents écrans sur la base de dimens.xml?Réponses:
Vous devez créer un dossier de valeurs différentes pour différents écrans . Comme
Pour plus d'informations, vous pouvez visiter ici
Édité par @humblerookie
Vous pouvez utiliser le plug-in Android Studio appelé Dimenify pour générer automatiquement des valeurs de dimension pour d'autres ensembles de pixels en fonction de facteurs d'échelle personnalisés. Il est toujours en version bêta, assurez-vous de notifier tout problème / suggestion que vous rencontrez au développeur.
la source
Utilisez DP évolutif
Bien que créer une mise en page différente pour différentes tailles d'écran soit théoriquement une bonne idée, cela peut devenir très difficile à adapter pour toutes les dimensions d'écran et toutes les densités de pixels. Avoir plus de 20
dimens.xml
fichiers différents , comme suggéré dans les réponses ci-dessus, n'est pas du tout facile à gérer.Comment utiliser:
À utiliser
sdp
:implementation 'com.intuit.sdp:sdp-android:1.0.5'
dans votrebuild.gradle
,Remplacez toute
dp
valeur telle que50dp
par une valeur@dimen/50_sdp
similaire:Comment ça fonctionne:
sdp
s'adapte à la taille de l'écran car il s'agit essentiellement d'une énorme liste de différentsdimens.xml
pour chaquedp
valeur possible .Regardez-le en action:
Le voici sur trois appareils avec des dimensions d'écran et des densités très différentes:
Notez que le
sdp
calcul de l'unité de taille inclut une certaine approximation en raison de certaines contraintes de performances et d'utilisabilité.la source
nous voulons voir les changements de taille de vue requise dans différents écrans.
Nous devons créer des dossiers de valeurs différentes pour différents écrans et placer le fichier dimens.xml en fonction des densités d'écran.
J'ai pris un TextView et observé les changements lorsque j'ai changé dimens.xml dans différents dossiers de valeurs.
Veuillez suivre le processus
normal - xhdpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons la normale - xhdpi \ dimens.xml
nexus 5X (5,2 "* 1080 * 1920: 420 dpi)
Nexus 6P (5,7 "* 1440 * 2560: 560 dpi)
nexus 6 (6,0 "* 1440 * 2560: 560 dpi)
nexus 5 (5,0 ", 1080 1920: xxhdpi)
Nexus 4 (4,7 ", 768 * 1280: xhdpi)
Galaxy Nexus (4,7 ", 720 * 1280: xhdpi)
4,65 "720p (720 * 1280: xhdpi)
4,7 "WXGA (1 280 * 720: Xhdpi)
Xlarge - xhdpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons le Xlarge - xhdpi \ dimens.xml
Nexus 9 (8,9 ", 2048 * 1556: xhdpi)
nexus 10 (10,1 ", 2560 * 1600: xhdpi)
grand - xhdpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons le grand - xhdpi \ dimens.xml
nexus 7 (7,0 ", 1200 * 1920: xhdpi)
nexus 7 (2012) (7,0 ", 800 * 1280: tvdpi)
Les écrans ci-dessous sont visibles dans "Rechercher des téléphones et tablettes génériques"
grand - mdpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons le grand - mdpi \ dimens.xml
5,1 "WVGA (480 * 800: mdpi)
5,4 "FWVGA (480 * 854: mdpi)
WSVGA 7,0 "(tablette) (1024 * 600: mdpi)
normal - hdpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons la normale - hdpi \ dimens.xml
nexus s (4,0 ", 480 * 800: hdpi)
nexus one (3,7 ", 480 * 800: hdpi)
petit - ldpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons le petit - ldpi \ dimens.xml
Curseur QVGA 2,7 "(240 * 320: ldpi)
2,7 "QVGA (240 * 320: ldpi)
xlarge - mdpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons le xlarge - mdpi \ dimens.xml
10,1 "WXGA (tABLET) (1280 * 800: MDPI)
normal - ldpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons la normale - ldpi \ dimens.xml
3,3 "WQVGA (240 * 400: LDPI)
3,4 "WQVGA (240 * 432: LDPI)
normal - hdpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons la normale - hdpi \ dimens.xml
4,0 "WVGA (480 * 800: hdpi)
3,7 "WVGA (480 * 800: hdpi)
Curseur FWVGA 3,7 "(480 * 854: hdpi)
normal - mdpi \ dimens.xml
Les appareils ci-dessous peuvent changer la taille des écrans lorsque nous changeons la normale - mdpi \ dimens.xml
Curseur HVGA 3,2 "(ADP1) (320 * 480: MDPI)
3,2 "QVGA (ADP2) (320 * 480: MDPI)
la source
values-normal-xhdpi
?Il existe de belles bibliothèques qui gèrent tout et réduisent votre douleur. Pour l'utiliser, ajoutez simplement deux dépendances dans gradle:
Après cela, utilisez
dimens
comme ceci:la source
J'ai téléchargé un programme java simple qui prend l'emplacement de votre projet et le fichier de dimension que vous souhaitez en entrée. Sur cette base, il afficherait le fichier de dimension correspondant dans la console. Voici le lien vers celui-ci:
https://github.com/akeshwar/Dimens-for-different-screens-in-Android/blob/master/Main.java
Voici le code complet pour la référence:
la source
Vous devez créer un
values
dossier différent pour différents écrans et mettre ledimens.xml
fichier en fonction des densités.la source
ldpi
, demdpi
manièrevalues-xxhdpi
pour Nexus 6?320x480
est typique mdpi . Alors, mettez-le dansvalues
ou dansvalues-mdpi
Vous pouvez mettre
dimens.xml
en1) valeurs
2) valeurs-hdpi
3) valeurs-xhdpi
4) valeurs-xxhdpi
Et donnez différentes tailles
dimens.xml
dans les dossiers correspondants en fonction des densités.la source
Si vous voulez voir plus: Voici un lien pour une liste des périphériques (tablettes, mobiles, montres), y compris
watch
,chromebook
,windows
etmac
. Ici vous pouvez trouver la densité, les dimensions, etc. En vous basant simplement ici, c'est une bonne ressource si vous utilisez également un émulateur.Si vous cliquez sur un élément spécifique, il affichera plus de détails sur le côté droit.
Puisqu'il est
Android
, je posterai lié à lui.~ Il vaut mieux enregistrer une copie du Web. Pour l'afficher hors ligne.
la source
Android 3.2 introduit une nouvelle approche des tailles d'écran, les nombres décrivant la taille de l'écran sont tous en unités «dp».
plus petite largeur dp: la plus petite largeur disponible pour la mise en page de l'application en unités «dp»; c'est le plus petit dp de largeur que vous rencontrerez jamais dans une rotation de l'écran.
Pour créer un clic droit sur res >>> nouveau >>> répertoire de ressources Android
De la fenêtre des qualificatifs disponibles , déplacez la plus petite largeur d'écran vers les qualificatifs choisis
Dans la fenêtre Largeur de l' écran, écrivez simplement la valeur «dp» à partir de laquelle vous souhaitez qu'Android Studio utilise cette dimensionnement.
Ensuite, passez à la vue Projet , faites un clic droit sur votre nouveau répertoire de ressources créé
nouveau fichier de ressources >>> Valeurs entrez un nouveau nom de fichier dimens.xml et vous avez terminé.
la source