2017-04-17 4 views
0

Je suis nouveau dans le développement android. J'ai créé une application Android la plupart des appareils de conception ont l'air bien. Les appareils de résolution 1080x1920 fonctionnent correctement. Mais, certains appareils Nexus 5x et LeEco-2 (les deux ayant la même résolution) les conceptions (UI) ne regardent pas comme prévu dans ces appareils.Comment utiliser 1080x1920: 420 dpi - Android studio

De quel répertoire de ressources ai-je besoin pour ces périphériques?

enter image description here

+0

voir la logique http://stackoverflow.com/questions/32860815/how-to-define-dimens-xml-for-every -différent écran-taille-dans-android/32861248 # 32861248 –

Répondre

0

appellent cette method à savoir quelle taille de l'écran est en fait l'appareil est! certains appareils obtiennent la valeur de xxxhdpi certains get de sw800dp (ou tout autre dossier smallest width)

public int differentDensityAndScreenSize(Context context) { 
     int value = 20; 
     String str = ""; 
     if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_SMALL) { 
      switch (context.getResources().getDisplayMetrics().densityDpi) { 
       case DisplayMetrics.DENSITY_LOW: 
        str = "small-ldpi"; 
        value = 20; 
        break; 
       case DisplayMetrics.DENSITY_MEDIUM: 
        str = "small-mdpi"; 
        value = 20; 
        break; 
       case DisplayMetrics.DENSITY_HIGH: 
        str = "small-hdpi"; 
        value = 20; 
        break; 
       case DisplayMetrics.DENSITY_XHIGH: 
        str = "small-xhdpi"; 
        value = 20; 
        break; 
       case DisplayMetrics.DENSITY_XXHIGH: 
        str = "small-xxhdpi"; 
        value = 20; 
        break; 
       case DisplayMetrics.DENSITY_XXXHIGH: 
        str = "small-xxxhdpi"; 
        value = 20; 
        break; 
       case DisplayMetrics.DENSITY_TV: 
        str = "small-tvdpi"; 
        value = 20; 
        break; 
       default: 
        str = "small-unknown"; 
        value = 20; 
        break; 
      } 

     } else if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_NORMAL) { 
      switch (context.getResources().getDisplayMetrics().densityDpi) { 
       case DisplayMetrics.DENSITY_LOW: 
        str = "normal-ldpi"; 
        value = 82; 
        break; 
       case DisplayMetrics.DENSITY_MEDIUM: 
        str = "normal-mdpi"; 
        value = 82; 
        break; 
       case DisplayMetrics.DENSITY_HIGH: 
        str = "normal-hdpi"; 
        value = 82; 
        break; 
       case DisplayMetrics.DENSITY_XHIGH: 
        str = "normal-xhdpi"; 
        value = 90; 
        break; 
       case DisplayMetrics.DENSITY_XXHIGH: 
        str = "normal-xxhdpi"; 
        value = 96; 
        break; 
       case DisplayMetrics.DENSITY_XXXHIGH: 
        str = "normal-xxxhdpi"; 
        value = 96; 
        break; 
       case DisplayMetrics.DENSITY_TV: 
        str = "normal-tvdpi"; 
        value = 96; 
        break; 
       default: 
        str = "normal-unknown"; 
        value = 82; 
        break; 
      } 
     } else if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_LARGE) { 
      switch (context.getResources().getDisplayMetrics().densityDpi) { 
       case DisplayMetrics.DENSITY_LOW: 
        str = "large-ldpi"; 
        value = 78; 
        break; 
       case DisplayMetrics.DENSITY_MEDIUM: 
        str = "large-mdpi"; 
        value = 78; 
        break; 
       case DisplayMetrics.DENSITY_HIGH: 
        str = "large-hdpi"; 
        value = 78; 
        break; 
       case DisplayMetrics.DENSITY_XHIGH: 
        str = "large-xhdpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_XXHIGH: 
        str = "large-xxhdpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_XXXHIGH: 
        str = "large-xxxhdpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_TV: 
        str = "large-tvdpi"; 
        value = 125; 
        break; 
       default: 
        str = "large-unknown"; 
        value = 78; 
        break; 
      } 

     } else if ((context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) == Configuration.SCREENLAYOUT_SIZE_XLARGE) { 
      switch (context.getResources().getDisplayMetrics().densityDpi) { 
       case DisplayMetrics.DENSITY_LOW: 
        str = "xlarge-ldpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_MEDIUM: 
        str = "xlarge-mdpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_HIGH: 
        str = "xlarge-hdpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_XHIGH: 
        str = "xlarge-xhdpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_XXHIGH: 
        str = "xlarge-xxhdpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_XXXHIGH: 
        str = "xlarge-xxxhdpi"; 
        value = 125; 
        break; 
       case DisplayMetrics.DENSITY_TV: 
        str = "xlarge-tvdpi"; 
        value = 125; 
        break; 
       default: 
        str = "xlarge-unknown"; 
        value = 125; 
        break; 
      } 
     } 
// The Toast will show the Device falls in Which Categories. 
     Toast.makeText(MainActivity.this, ""+str, Toast.LENGTH_SHORT).show(); 

     return value; 
    }