web-dev-qa-db-fra.com

Comment pouvons-nous obtenir la taille de l'écran avec l'encoche sur le dessus

Il existe des appareils tels que Huawei p20 (fonctionnant sous Android 8,8.1), sur lesquels figure la variable notch intégrée. La méthode actuelle pour obtenir la taille de l'écran est

 Display display = getWindow().getWindowManager().getDefaultDisplay();
 Point screenSize = new Point();

 display.getRealSize(screenSize);
 //screenSize.x
//screenSize.y

Et il mène le jeu hors de l'écran. Alors, y at-il un moyen de résoudre le problème de notch avec les appareils Android P et Pre-p. 

3
Javasamurai

Il existe peu d'appareils Android dotés d'options notch et il n'est actuellement pas possible d'obtenir la taille d'écran exacte de ces appareils à l'aide des API Android.

MAIS il existe un moyen de contourner le problème, vous pouvez vérifier le nom du périphérique et ajuster votre présentation en conséquence.

Il existe une bibliothèque Android populaire pour obtenir le nom commercial d'un appareil Android. Vérifiez plus d'informations ici: https://github.com/jaredrummler/AndroidDeviceNames

Comment utiliser cette lib:

String deviceName = DeviceName.getDeviceName();

J'espère que cela vous aidera à vous concentrer sur votre développement au lieu de perdre du temps!

2
VicJordan

La barre d'état (où se trouvent toutes vos notifications) s'adapte toujours à la profondeur de l'encoche. Regardez le pixel 3 qui a la plus grande encoche au monde: p La barre d'état devient aussi haute que l'encoche. 

 enter image description here

Ainsi, l'encoche ne pose problème que si votre application est en plein écran (le contenu est dessiné sous la barre d'état) et peut couvrir une partie de votre contenu. Faites que votre application ne soit pas en plein écran (dessinez uniquement sous le statut bar) et vous n’aurez plus à vous soucier de la taille de l’encoche Beaucoup de jeux ignorent la barre d'état de leur contenu. 

0
danjar