Więcej
Pobierz wymiary ekranu w pikselach
Stworzyłem kilka niestandardowych elementów i chcę je programowo umieścić w prawym górnym rogu (n
pikseli od górnej krawędzi i m
pikseli od prawej krawędzi). Dlatego muszę uzyskać szerokość ekranu i wysokość ekranu, a następnie ustawić pozycję:
int px = screenWidth - m;
int py = screenHeight - n;
Jak mogę uzyskać screenWidth
i screenHeight
w głównej aktywności?
1797
3
Jeśli chcesz uzyskać wymiary wyświetlania w pikselach, możesz użyć
getSize
:Jeśli nie jesteś w
Activity
możesz uzyskać domyślnyWyświetlacz
poprzezWINDOW_SERVICE
:Jeśli jesteś we fragmencie i chcesz to osiągnąć, po prostu użyj Activity.WindowManager (w Xamarin.Android) lub getActivity().getWindowManager() (w java).
Zanim
getSize
został wprowadzony (w API level 13), mogłeś użyć metodgetWidth
igetHeight
, które teraz są przestarzałe:Dla przypadku użycia, który opisujesz, margines/padding w układzie wydaje się bardziej odpowiedni.
Innym sposobem jest: DisplayMetrics
Możemy użyć
widthPixels
, aby uzyskać informacje dla:Przykład:
Jednym ze sposobów jest:
Jest on zdeprecjonowany i powinieneś zamiast niego wypróbować następujący kod. Pierwsze dwie linie kodu dają ci obiekt
DisplayMetrics
. Ten obiekt zawiera pola takie jakheightPixels
,widthPixels
.Najpierw zdobądź widok (np. przez
findViewById()
), a następnie możesz użyć getWidth() na samym widoku.