-
Multi résolution d'écran
Bonjour,
J'essaie de faire une belle interface avec des images en background de mes layouts, mais je positionne des widgets bien précisément en fonction de ces background et la position de ces widgets varie en fonction de la résolution d'écran.
J'ai utilisé toutes les suggestions de Google en positionnant avec "dip" au lieu de "px" et en ajoutant les répertoires "layout-small" et "layout-large" à "res", mais cela ne fonctionne que pour distinguer 3 types d'écrans : petits (2,7 pouces), moyens (2,2 à 4 pouces) et grands (sup à 5,1 pouces).
Mon problème est qu'entre un écran QVGA (exemple HTC Hero) et un écran WVGA (exemple Nexus one), c'est le même layout qui est utilisé, et donc j'ai soit un bon positionnement pour l'un, soit pour l'autre, mais pas les deux...
La seule solution que je vois est de tester la résolution de l'écran en faisant :
Code:
getWindowManager().getDefaultDisplay().getWidth() (ou getHeight());
et ensuite de faire 2 layouts différents.
Quelqu'un aurait-il une autre solution ?
-
Salut,
Tu mentionnes les notions de "layout-small" et "layout-large", mais as tu également pensé à utiliser les "layout-ldpi" et "layout-hdpi" ?
Sinon, si tu peux carrément préciser la dimension des écrans. exemple : "layout-480x320".
-
Ah non ! j'avais pas essayé !
Je fais l'essai tout de suite...
PS : tu es une encyclopédie vivante ! fais attention, Google va te scanner...
-
J'ai essayé, et j'ai le même problème... De plus il mélange des fois entre les layouts et je dois tout recommencer...
Tant pis, je vais passer par la résolution d'écran et deux layouts dans le même répertoire.
Merci
-
D'ailleurs c'est bizarre et ça explique peut-être mes soucis, lorsque je fais
Code:
Log.i("??", String.valueOf(getWindowManager().getDefaultDisplay().getWidth()));
il m'affiche 320 pour mon Nexus one !
-
C'est parce qu'il te retourne la taille en "dip".
Code:
pixels = dips * (density / 160)
Si je me trompe aps la densité du N1 est 240.
Donc :
Code:
320dip * (240 / 160) ==> 480px
-
Merci pour l'info, effectivement je n'y ai pas pensé.
En tout cas, mon système fonctionne et je peux distinguer mon Nexus d'un téléphone de moindre résolution, c'est ce que je recherchais.
Bon Noël et bonne année à tous.