Gibt es eine Möglichkeit, die Kategorie der Bildschirmgröße des aktuellen Geräts zu bestimmen, z. B. klein, normal, groß, groß?
Nicht die Dichte, sondern die Bildschirmgröße.
Gibt es eine Möglichkeit, die Kategorie der Bildschirmgröße des aktuellen Geräts zu bestimmen, z. B. klein, normal, groß, groß?
Nicht die Dichte, sondern die Bildschirmgröße.
Sie können die Configuration.screenLayout
Bitmaske verwenden.
Beispiel:
if ((getResources().getConfiguration().screenLayout &
Configuration.SCREENLAYOUT_SIZE_MASK) ==
Configuration.SCREENLAYOUT_SIZE_LARGE) {
// on a large screen device ...
}
Der folgende Code konkretisiert die obige Antwort und zeigt die Bildschirmgröße als Toast an.
Dieser Code unten zeigt die Bildschirmdichte als Toast an.
quelle
Jeff Gilfilts Antwort als statische Hilfsmethode :
quelle
quelle
Vielen Dank für die obigen Antworten, die mir sehr geholfen haben :-) Aber für diejenigen (wie mich), die gezwungen sind, Android 1.5 weiterhin zu unterstützen, können wir Java Reflection für abwärtskompatibel verwenden:
quelle
Configuration
Klasse verweisen . Dies sind statische Endwerte, die beim Kompilieren eingefügt werden (dh sie werden durch ihre tatsächlichen Werte ersetzt), damit Ihr Code auf älteren Versionen der Plattform nicht beschädigt wird.targetSdkVersion
auf die neueste Version eingestellt.Wenn Sie die Bildschirmdichte und -größe eines Android-Geräts leicht ermitteln möchten, können Sie diese kostenlose App verwenden (keine Berechtigung erforderlich): https://market.android.com/details?id=com.jotabout.screeninfo
quelle
Müssen Sie nach großen Bildschirmen und hohen Dichten suchen? Dies ist der geänderte Code aus der gewählten Antwort.
quelle
Hier ist eine Xamarin.Android-Version von Tom McFarlins Antwort
quelle
Versuchen Sie diese Funktion isLayoutSizeAtLeast (int screenSize)
Um einen kleinen Bildschirm zu überprüfen, mindestens 320x426 dp und mehr getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_SMALL);
Um den normalen Bildschirm zu überprüfen, mindestens 320x470 dp und mehr getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_NORMAL);
Um einen großen Bildschirm zu überprüfen, mindestens 480 x 640 dp und mehr getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_LARGE);
Um einen besonders großen Bildschirm zu überprüfen, mindestens 720 x 960 dp und mehr getResources (). GetConfiguration (). IsLayoutSizeAtLeast (Configuration.SCREENLAYOUT_SIZE_XLARGE);
quelle
Wenn Sie 2018 Jeffs Antwort in Kotlin benötigen, finden Sie sie hier:
quelle
Könnten Sie dies nicht mit einer Zeichenfolgenressource und Aufzählungen tun? Sie können eine Zeichenfolgenressource definieren, die den Namen der Bildschirmgröße hat, z. B. SMALL, MEDIUM oder LARGE. Dann können Sie den Wert der Zeichenfolgenressource verwenden, um eine Instanz der Aufzählung zu erstellen.
Definieren Sie in Ihrem Code eine Aufzählung für die verschiedenen Bildschirmgrößen, die Sie interessieren.
Definieren Sie eine Zeichenfolgenressource, z. B. Bildschirmgröße, deren Wert entweder SMALL, MEDIUM oder LARGE ist.
screensize
Sie in jeder Dimension, die Sie interessiert, eine Kopie von in eine Zeichenfolgenressource ein.Beispiel:
<string name="screensize">MEDIUM</string>
Gehen Sie zu values-sw600dp / strings.xml und values-medium / strings.xml und<string name="screensize">LARGE</string>
gehen Sie zu sw720dp / strings.xml und values-large / strings.xml.ScreenSize size = ScreenSize.valueOf(getReources().getString(R.string.screensize);
quelle
Kopieren Sie diesen Code und fügen Sie ihn in Ihren ein.
Activity
Wenn er ausgeführt wird, wirdToast
die Bildschirmgrößenkategorie des Geräts angezeigt.quelle