de-vraag
  • Pytania
  • Tagi
  • Użytkownicy
Powiadomienia
Nagrody
Rejestracja
Po zarejestrowaniu się, będziesz otrzymywać powiadomienia o odpowiedziach i komentarzach do swoich pytań.
Zaloguj się
Brak tłumaczeń pasujących do Twojego wyszukiwania Jeśli masz już konto, zaloguj się, aby sprawdzić nowe powiadomienia.
Za dodane pytania, odpowiedzi i komentarze przewidziane są nagrody.
Więcej
Źródło
Edytuj
Niko Gamulin
Niko Gamulin
Question

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 2009-06-19T08:25:57+00:00 3
 Ironman
Ironman
Edytowane pytanie 3. lipca 2016 в 10:43
Programowanie
screen
android
layout
pixel
dimensions
To pytanie ma 1 odpowiedź w języku angielskim, aby je przeczytać zaloguj się na swoje konto.
Solution / Answer
Josef Pfleger
Josef Pfleger
19. czerwca 2009 в 8:41
2009-06-19T08:41:04+00:00
Więcej
Źródło
Edytuj
#9178677

Jeśli chcesz uzyskać wymiary wyświetlania w pikselach, możesz użyć getSize:

Display display = getWindowManager().getDefaultDisplay();
Point size = new Point();
display.getSize(size);
int width = size.x;
int height = size.y;

Jeśli nie jesteś w Activity możesz uzyskać domyślny Wyświetlacz poprzez WINDOW_SERVICE:

WindowManager wm = (WindowManager) context.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();

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ć metod getWidth i getHeight, które teraz są przestarzałe:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();  // deprecated
int height = display.getHeight();  // deprecated

Dla przypadku użycia, który opisujesz, margines/padding w układzie wydaje się bardziej odpowiedni.

Innym sposobem jest: DisplayMetrics

Struktura opisująca ogólne informacje o wyświetlaczu, takie jak jego rozmiar, gęstość i skalowanie czcionki. Aby uzyskać dostęp do członków DisplayMetrics, zainicjalizuj obiekt w ten sposób:

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

Możemy użyć widthPixels, aby uzyskać informacje dla:

"Szerokość bezwzględna wyświetlacza w pikselach."

Przykład:

Log.d("ApplicationTagName", "Display width in px is " + metrics.widthPixels);
SATYAJEET RANJAN
SATYAJEET RANJAN
Edytowana odpowiedź 30. października 2018 в 10:28
3434
0
 Balaji.K
Balaji.K
31. stycznia 2011 в 2:01
2011-01-31T02:01:11+00:00
Więcej
Źródło
Edytuj
#9178678

Jednym ze sposobów jest:

Display display = getWindowManager().getDefaultDisplay(); 
int width = display.getWidth();
int height = display.getHeight();

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 jak heightPixels, widthPixels.

DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);

int height = metrics.heightPixels;
int width = metrics.widthPixels;
 Michael
Michael
Edytowana odpowiedź 22. maja 2019 в 6:29
364
0
Marcin Gil
Marcin Gil
19. czerwca 2009 в 8:38
2009-06-19T08:38:30+00:00
Więcej
Źródło
Edytuj
#9178676

Najpierw zdobądź widok (np. przez findViewById()), a następnie możesz użyć getWidth() na samym widoku.

Anik  Islam Abhi
Anik Islam Abhi
Edytowana odpowiedź 12. listopada 2015 в 11:27
32
0
Dodaj pytanie
Kategorie
Wszystkie
Technologia
Kultura / Rekreacja
Życie / Sztuka
Nauka
Profesjonalny
Biznes
Użytkownicy
Wszystkie
Nowy
Popularny
1
Jasur Fozilov
Zarejestrowany 8 godzin temu
2
Zuxriddin Muydinov
Zarejestrowany 23 godziny temu
3
Денис Анненский
Zarejestrowany 3 dni temu
4
365
Zarejestrowany 1 tydzień temu
5
True Image
Zarejestrowany 1 tydzień temu
BG
DE
EL
ES
FR
HU
ID
IT
JA
KO
LV
NL
PL
PT
RU
SK
SL
ZH
© de-vraag 2022
Źródło
stackoverflow.com
na podstawie licencji cc by-sa 3.0 z przypisaniem