Mit diesem Code können Sie die Breite und Höhe der Laufzeitanzeige ermitteln:
DisplayMetrics displayMetrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
int height = displayMetrics.heightPixels;
int width = displayMetrics.widthPixels;
In einer Ansicht müssen Sie etwas wie folgt tun:
((Activity) getContext()).getWindowManager()
.getDefaultDisplay()
.getMetrics(displayMetrics);
In einigen Szenarien, in denen Geräte eine Navigationsleiste haben, müssen Sie zur Laufzeit prüfen:
public boolean showNavigationBar(Resources resources)
{
int id = resources.getIdentifier("config_showNavigationBar", "bool", "android");
return id > 0 && resources.getBoolean(id);
}
Wenn das Gerät eine Navigationsleiste hat, zählen Sie deren Höhe:
private int getNavigationBarHeight() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
DisplayMetrics metrics = new DisplayMetrics();
getWindowManager().getDefaultDisplay().getMetrics(metrics);
int usableHeight = metrics.heightPixels;
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
int realHeight = metrics.heightPixels;
if (realHeight > usableHeight)
return realHeight - usableHeight;
else
return 0;
}
return 0;
}
Die endgültige Höhe des Geräts ist also:
int height = displayMetrics.heightPixels + getNavigationBarHeight();
2 Stimmen
Siehe: stackoverflow.com/questions/1016896/
2 Stimmen
Ist damit Ihre Frage beantwortet? Wie man in Android die Bildschirmabmessungen als Pixel erhält
0 Stimmen
Die aktualisierte richtige Antwort stackoverflow.com/a/67691009/4797289