Existe-t-il un moyen de déterminer la catégorie de taille d'écran de l'appareil actuel, telle que petite, normale, grande, xlarge?
Pas la densité, mais la taille de l'écran.
Existe-t-il un moyen de déterminer la catégorie de taille d'écran de l'appareil actuel, telle que petite, normale, grande, xlarge?
Pas la densité, mais la taille de l'écran.
Vous pouvez utiliser le Configuration.screenLayout
bitmask.
Exemple:
if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE) {
// on a large screen device ...
}
Le code ci-dessous étoffe la réponse ci-dessus, affichant la taille de l' écran sous forme de Toast.
Ce code ci-dessous affiche la densité de l' écran sous forme de pain grillé.
la source
Réponse de Jeff Gilfelt en tant que méthode d'assistance statique:
la source
la source
Merci pour les réponses ci-dessus, cela m'a beaucoup aidé :-) Mais pour ceux (comme moi) obligés de continuer à prendre en charge Android 1.5, nous pouvons utiliser la réflexion java pour une compatibilité descendante:
la source
Configuration
classe. Ce sont des valeurs finales statiques qui seront alignées au moment de la compilation (c'est-à-dire qu'elles seront remplacées par leurs valeurs réelles), donc votre code ne se cassera pas sur les anciennes versions de la plateforme.targetSdkVersion
dernière version.Si vous souhaitez connaître facilement la densité d'écran et la taille d'un appareil Android, vous pouvez utiliser cette application gratuite (sans autorisation requise): https://market.android.com/details?id=com.jotabout.screeninfo
la source
Besoin de vérifier les écrans xlarge et les densités x..high? Il s'agit du code modifié de la réponse choisie.
la source
Voici une version Xamarin.Android de la réponse de Tom McFarlin
la source
Essayez cette fonction isLayoutSizeAtLeast (int screenSize)
Pour vérifier le petit écran, au moins 320x426 dp et plus getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_SMALL);
Pour vérifier l'écran normal, au moins 320x470 dp et plus getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_NORMAL);
Pour vérifier un grand écran, au moins 480x640 dp et plus getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_LARGE);
Pour vérifier un écran extra large, au moins 720x960 dp et plus getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_XLARGE);
la source
En 2018, si vous avez besoin de la réponse de Jeff dans Kotlin, la voici:
la source
Ne pourriez-vous pas faire cela en utilisant une ressource de chaîne et des énumérations? Vous pouvez définir une ressource de chaîne portant le nom de la taille d'écran, telle que SMALL, MEDIUM ou LARGE. Ensuite, vous pouvez utiliser la valeur de la ressource de chaîne pour créer une instance de l'énumération.
Définissez une énumération dans votre code pour les différentes tailles d'écran qui vous intéressent.
Définissez une ressource de chaîne, par exemple screensize, dont la valeur sera SMALL, MEDIUM ou LARGE.
screensize
dans une ressource de chaîne dans chaque dimension qui vous intéresse.Par exemple,
<string name="screensize">MEDIUM</string>
irait dans values-sw600dp / strings.xml et values-medium / strings.xml et<string name="screensize">LARGE</string>
irait dans sw720dp / strings.xml et values-large / strings.xml.ScreenSize size = ScreenSize.valueOf(getReources().getString(R.string.screensize);
la source
Copiez et collez ce code dans votre
Activity
et lorsqu'il sera exécuté, il correspondra àToast
la catégorie de taille d'écran de l'appareil.la source