Détails
Obtenir les dimensions de l'écran en pixels
J'ai créé quelques éléments personnalisés, et je veux les placer par programmation dans le coin supérieur droit (n
pixels du bord supérieur et m
pixels du bord droit). Je dois donc obtenir la largeur et la hauteur de l'écran, puis définir la position :
int px = screenWidth - m;
int py = screenHeight - n;
Comment puis-je obtenir la largeur et la hauteur de l'écran dans l'activité principale ?
1797
3
Si vous souhaitez obtenir les dimensions d'affichage en pixels, vous pouvez utiliser [
getSize
][1] :Si vous n'êtes pas dans une
Activité
, vous pouvez obtenir l'affichage par défaut viaWINDOW_SERVICE
:Si vous êtes dans un fragment et que vous voulez accomplir ceci, utilisez simplement Activity.WindowManager (dans Xamarin.Android) ou getActivity().getWindowManager() (en java).
Avant l'introduction de
getSize
(au niveau 13 de l'API), vous pouviez utiliser les méthodesgetWidth
etgetHeight
qui sont maintenant dépréciées :Cependant, pour le cas d'utilisation que vous décrivez, une marge ou un renfort dans la mise en page semble plus approprié.
Une autre solution est la suivante : [DisplayMetrics][2]
Nous pouvons utiliser
widthPixels
pour obtenir des informations sur :Exemple:
[1] : http://developer.android.com/reference/android/view/Display.html#getSize%28android.graphics.Point%29 [2] : http://developer.android.com/reference/android/util/DisplayMetrics.html
Une façon de le faire :
Elle est dépréciée, et vous devriez essayer le code suivant à la place. Les deux premières lignes de code vous donnent l'objet
DisplayMetrics
. Cet objet contient les champs commeheightPixels
,widthPixels
.Obtenez d'abord la vue (par exemple par
findViewById()
) et ensuite vous pouvez utiliser [getWidth()][1] sur la vue elle-même.[1] : http://developer.android.com/reference/android/view/View.html#getWidth%28%29