83 votes

Support de différentes résolutions pour Android

Question modifiée :

Résolution mobile :
Je voudrais concevoir différents dpi d'écran comme les résolutions suivantes.
320x480,
480×800,
540x960,
720x1280 (Samsung S3),
1080x1920 (S4, Nexus5,Nexus 5x, Moto G4),
2560 x 1440 (Nexus 6, Nexus 6p, Samsung edge)

Résolution de la tablette :
480x800 (micromax) ,
600x1024 (samsung tab2),
800x1280 (nexus 7),
1200x1920 (nouveau nexus 7),
2048x1536 (nexus 9)

Je veux utiliser différentes tailles de police en fonction de la résolution d'affichage de l'appareil.

Q1) Quel est le best moyen de résoudre ce problème problem ?

Q2) Quelle est la meilleure option pour faire du codage ou du XML ?

Q3) Quel dossier dessinable représente quelle résolution de périphérique ?

Q4) Taille de l'icône du lanceur d'applications en fonction de la résolution ?

3voto

naif.ult Points 121

Je pense que c'est une bonne réponse :

Taille du texte et différentes tailles d'écran Android

Mais voici comment vous pouvez le faire avec la résolution d'écran :

Vous pouvez créer un répertoire de ressources "valeurs" pour chaque résolution comme suit

values-wWIDTHp-hHEIGHTdp (you can also use values-wWIDTHp or values-hHEIGHTdp)
for example: 320*480 will be values-w320p-h480dp

Dans chaque répertoire (y compris le répertoire des valeurs par défaut), créez un fichier nommé "d

 for exmaple (the value related to the resolution):
 <dimen name="def_font_size">10sp</dimen>

Maintenant, vous pouvez utiliser le "@dimen/def_font_size". ou créer un style dans le répertoire des valeurs par défaut.

Ajoutez ceci au fichier "styles.xml" :

<style name="FontSize">
    <item name="android:textSize">@dimen/def_font_size</item>
</style>

1voto

Furqan Ali Points 137

J'ai créé une fonction qui convertit la taille du dp en fonction de la taille de l'écran et cela fonctionne bien pour moi. Tous ceux qui ont des problèmes avec la taille du texte en fonction de l'écran devraient essayer cette fonction.

public float convertFromDp(int input) {
    final float scale = getResources().getDisplayMetrics().density;
    return ((input - 0.5f) / scale);
}

donnez simplement la valeur qu'il donne à la taille de l'affichage du texte par programme comme ci-dessous

tvTextView1.setTextSize(convertFromDp(24));

1voto

Anand Savjani Points 2029

Pour le support de l'appareil nexus 6, créez un dossier drawable-560dpi et mettez-y toutes les images.

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