Czy istnieje sposób na określenie kategorii rozmiaru ekranu bieżącego urządzenia, takiego jak mały, normalny, duży, duży?
Nie gęstość, ale rozmiar ekranu.
Czy istnieje sposób na określenie kategorii rozmiaru ekranu bieżącego urządzenia, takiego jak mały, normalny, duży, duży?
Nie gęstość, ale rozmiar ekranu.
Możesz użyć Configuration.screenLayout
maski bitowej.
Przykład:
if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE) {
// on a large screen device ...
}
Poniższy kod wyjaśnia powyższą odpowiedź, wyświetlając rozmiar ekranu jako Toast.
Poniższy kod wyświetla gęstość ekranu jako Toast.
źródło
Odpowiedź Jeff Gilfelt jako metoda statycznego pomocnika:
źródło
źródło
Dziękuję za powyższe odpowiedzi, które bardzo mi pomogły :-) Ale dla tych (jak ja) zmuszonych do dalszego wspierania Androida 1.5 możemy użyć odbicie Java w kompatybilności wstecznej:
źródło
Configuration
klasy. Są to statyczne wartości końcowe, które zostaną wprowadzone w czasie kompilacji (to znaczy zostaną zastąpione ich rzeczywistymi wartościami), dzięki czemu kod nie zepsuje się na starszych wersjach platformy.targetSdkVersion
najnowszą wersję.Jeśli chcesz łatwo poznać gęstość ekranu i rozmiar urządzenia z Androidem, możesz skorzystać z tej bezpłatnej aplikacji (nie wymaga pozwolenia): https://market.android.com/details?id=com.jotabout.screeninfo
źródło
Chcesz sprawdzić, czy są duże ekrany i x ... wysoka gęstość? To jest zmieniony kod z wybranej odpowiedzi.
źródło
Oto Xamarin.Android wersja odpowiedzi Toma McFarlina
źródło
Wypróbuj tę funkcję isLayoutSizeAtLeast (int screenSize)
Aby sprawdzić mały ekran, przynajmniej 320x426 dp i powyżej getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_SMALL);
Aby sprawdzić normalny ekran, przynajmniej 320x470 dp i powyżej getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_NORMAL);
Aby sprawdzić duży ekran, przynajmniej 480 x 640 dp i powyżej getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_LARGE);
Aby sprawdzić bardzo duży ekran, przynajmniej 720x960 dp i powyżej getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_XLARGE);
źródło
W 2018 roku, jeśli potrzebujesz odpowiedzi Jeffa w Kotlinie, oto ona:
źródło
Czy nie możesz tego zrobić za pomocą zasobu ciągów i znaków wyliczających? Możesz zdefiniować zasób łańcucha, który miał nazwę rozmiaru ekranu, taki jak MAŁY, ŚREDNI lub DUŻY. Następnie można użyć wartości zasobu ciągów, aby utworzyć wystąpienie wyliczenia.
Zdefiniuj Enum w swoim kodzie dla różnych rozmiarów ekranu, na których Ci zależy.
Zdefiniuj zasób łańcucha, np. Rozmiar ekranu, którego wartość będzie MAŁA, ŚREDNIA lub DUŻA.
screensize
w łańcuchu znaków w każdym interesującym cię wymiarze.Na przykład
<string name="screensize">MEDIUM</string>
przejdzie do wartości-sw600dp / strings.xml i wartości-medium / strings.xml i<string name="screensize">LARGE</string>
przejdzie do sw720dp / strings.xml i wartości-large / strings.xml.ScreenSize size = ScreenSize.valueOf(getReources().getString(R.string.screensize);
źródło
Skopiuj i wklej ten kod do swojego,
Activity
a gdy zostanie wykonany, będzieToast
to kategoria rozmiaru ekranu urządzenia.źródło