2010-08-09 7 views
5

J'ai différents fichiers de mise en page pour la taille écrans différents commeAndroid - dossier layout-grand est été ignoré

Structure des dossiers:

  • mise en page
  • layout-grand
  • layout-petits

    Pour les émulateurs tels que HVGA et QVGA, il n'y a aucun problème, le respecti ve fichier layout.xml en cours de révision. Mais le dossier layout-large est ignoré lorsque je lance l'émulateur de WVGA (480x854), ici il fait référence le dossier "layout" de l'application . S'il vous plaît pointez-moi à la bonne direction qui est le bon chemin à gérer cette situation.

    J'ai essayé d'utiliser

layout-grande hdpi disposition-grande mdpi layout-grand-LDPI mise en page normale-hdpi mise en page normale-mdpi mise en page normale-LDPI

Et dans le AndroidManifest.xml I spécifié

<supports-screens 
    android:largeScreens="true" 
    android:normalScreens="true" 
    android:smallScreens="true" 
    android:anyDensity="true" /> 

mais pas de succès

+1

Typos? -> layout-lagre-hdpi Disposition-lagre-mdpi Disposition-lagre-ldpi – WarrenFaith

Répondre

1

Avez-vous vérifié si votre niveau d'API le supporte déjà? J'ai aussi eu ce problème. Dans mon cas, j'ai utilisé la ligne suivante dans le manifeste, qui a mis le TargetSDK à 4 (1.6), où le support de ces différentes dispositions a commencé.

<uses-sdk android:minSdkVersion="3" android:targetSdkVersion="4" /> 

Liens:
Screen Support

+0

HI Wolkenjaeger J'ai spécifié pas de succès. –

+0

Je ne suis pas sûr si vous avez compris le concept de petit, moyen, grand et hdpi, mdpi, ldpi. Large est utilisé pour les grands écrans comme les tablettes et non les hautes résolutions des appareils mobiles. Les appareils mobiles sont principalement des écrans de taille moyenne. Ce que vous cherchez est pour les écrans de taille moyenne (comme le Samsung Galaxy) avec des résolutions élevées. Dans ce cas, vous devez travailler avec DPI. Les mises en page dans Android sont automatiquement mises à l'échelle à la bonne taille si vous utilisez DPI. Cependant, si vous voulez utiliser des drawables différents, vous devez les mettre dans drawables-hdpi -mdpi -ldpi Je vous invite à consulter http://bit.ly/27nPxz à nouveau. – Wolkenjaeger

7

Je pense que le problème est que les gens créent toujours un grand écran par AVD Manager et il définit la densité par défaut à 240 qui ne sont pas pris en charge par /res/layout-large Si vous voulez voulez tester /res/layout-large/any_layout.xml alors vous devriez voir la densité de votre périphérique virtuel il devrait être réglé à 160 pas 240 ou 120

+0

Pouvez-vous expliquer pourquoi la densité = 160 pour les tablettes? parce que je suis confronté au problème –

+0

@RanjithKumar vérifier cette image: https://developer.android.com/images/screens_support/screens-ranges.png de ce doc: https://developer.android.com/guide/practices/screens_support .html # overview – LLL

+0

@LLL merci pour le lien .. –

4

Assurez-vous que la taille par défaut de l'émulateur est "grande" et non "xlarge". Par exemple, si la taille de l'émulateur est "xlarge", le dossier "layout-large" sera ignoré et le dossier "layout" par défaut sera utilisé car il ne trouvera pas de dossier "layout-xlarge" .

Ceci est facile à identifier si vous utilisez Android Studio.

+0

Comment identifier cela dans Android Studio? Je suis confronté au même problème: la mise en page n'est pas utilisée dans les émulateurs Nexus 7 et 10, même si j'ai ajouté ** layout-large/activity_main.xml, layout-xlarge/activity_main.xml, layout-sw600dp/activity_main.xml, layout-sw720dp/activity_main.xml ** et ** layout-sw800dp/activity_main.xml **. –

+1

-> Ouvrez votre gestionnaire AVD -> éditez le AVD que vous utilisez -> Sur le périphérique de clonage matériel, appuyez sur "change". Vous verrez qu'une taille est affichée à droite. Tous les «téléphones» semblent être de taille normale, où si vous choisissez de la liste de «comprimé» les tailles montreraient grand. – Wilhelm