Wie kann die Bildschirmgrößenkategorie des Geräts (klein, normal, groß, xgroß) mithilfe von Code bestimmt werden?

StackOverflow https://stackoverflow.com/questions/5015094

Frage

Gibt es eine Möglichkeit, die Kategorie der Bildschirmgröße des aktuellen Geräts zu bestimmen, z. B. klein, normal, groß, xlarge?

Nicht die Dichte, sondern die Bildschirmgröße.

War es hilfreich?

Lösung

Sie können den Configuration.screenLayout Bitmask verwenden.

Beispiel: generasacodicetagpre.

Andere Tipps

Der untenstehende Code fließt die obigen Antwort aus und zeigt die Bildschirmgröße als Toast an. generasacodicetagpre.

Dieser Code unten zeigt die Siebdichte als Toast. generasacodicetagpre.

Jeff Gilfelt's Antwort als statische Helfer-Methode: generasacodicetagpre.

Danke für die Antworten, die mir viel geholfen haben generasacodicetagpre.

generasacodicetagpre.

Wenn Sie die Bildschirmdichte und die Größe eines Android-Geräts ganz einfach kennen möchten, können Sie diese kostenlose App verwenden (keine Erlaubnis erforderlich): https://market.android.com/details?id=com.jotabout.screeninfo

Müssen Sie nach XLarge-Bildschirmen und x..High Dichten suchen?Dies ist der geänderte Code aus der gewählten Antwort. generasacodicetagpre.

Hier ist eine Xamarin.Android-Version von Tom McFarlins Antwort generasacodicetagpre.

2018, wenn Sie Jeffs Antwort in Kotlin benötigen, ist es hier: generasacodicetagpre.

Könnten Sie dies nicht mit einer String-Ressource und Aufzählungen tun?Sie können eine Zeichenfolgenressource definieren, deren Name der Bildschirmgröße entspricht, z. B. SMALL, MEDIUM oder LARGE.Dann könnten Sie den Wert der String-Ressource verwenden, um eine Instanz der Enumeration zu erstellen.

  1. Definieren Sie in Ihrem Code eine Aufzählung für die verschiedenen Bildschirmgrößen, die Sie interessieren.

    public Enum ScreenSize {
        SMALL,
        MEDIUM,
        LARGE,;
    }
    
  2. Definieren Sie eine Zeichenfolgenressource, beispielsweise „screensize“, deren Wert entweder SMALL, MEDIUM oder LARGE ist.

    <string name="screensize">MEDIUM</string>
    
  3. Legen Sie eine Kopie davon ein screensize in einer String-Ressource in jeder Dimension, die Sie interessiert.
    Zum Beispiel, <string name="screensize">MEDIUM</string> würde in „values-sw600dp/strings.xml“ und „values-medium/strings.xml“ eingehen <string name="screensize">LARGE</string> würde in sw720dp/strings.xml und value-large/strings.xml eingehen.
  4. Schreiben Sie im Code
    ScreenSize size = ScreenSize.valueOf(getReources().getString(R.string.screensize);

Kopieren Sie diesen Code und fügen Sie ihn in Ihr ein Activity und wenn es ausgeführt wird, wird es so sein Toast Die Bildschirmgrößenkategorie des Geräts.

int screenSize = getResources().getConfiguration().screenLayout &
        Configuration.SCREENLAYOUT_SIZE_MASK;

String toastMsg;
switch(screenSize) {
    case Configuration.SCREENLAYOUT_SIZE_LARGE:
        toastMsg = "Large screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_NORMAL:
        toastMsg = "Normal screen";
        break;
    case Configuration.SCREENLAYOUT_SIZE_SMALL:
        toastMsg = "Small screen";
        break;
    default:
        toastMsg = "Screen size is neither large, normal or small";
}
Toast.makeText(this, toastMsg, Toast.LENGTH_LONG).show();

Versuchen Sie diese Funktion islayoutsizeatleast (int screensessize)

, um den kleinen Bildschirm zu überprüfen, mindestens 320x426 dp und höher GetResources (). GetConfiguration (). islayoutsizeatleast (configuration.screenlayout_size_small);

, um den Normalbildschirm zu überprüfen, mindestens 320x470 dp und höher GetResources (). GetConfiguration (). islayoutsizeatleast (configuration.screenlayout_size_normal);

, um den großen Bildschirm zu überprüfen, mindestens 480x640 dp und darüber GetResources (). GetConfiguration (). islayoutsizeatleast (configuration.screenlayout_size_large);

, um einen extra großen Bildschirm zu überprüfen, zumindest 720x960 dp und höher GetResources (). GetConfiguration (). islayoutsizeatleast (configuration.screenlayout_size_xlarge);

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top