Da Android N einen geteilten Bildschirm einführt, kann die Fenstergröße Ihrer App halb so groß sein wie ursprünglich. Ich habe festgestellt, dass getActivity().getWindowManager().getDefaultDisplay().getMetrics(metrics);
nicht mehr immer die tatsächliche Bildschirmgröße des Geräts zurückgibt, da im Split-Screen-Modus die Höhe des Displays stattdessen die Fensterhöhe der App ist. Gibt es eine andere API, die ich verwenden kann, um die tatsächliche Bildschirmgröße zu erhalten?Wie bekomme ich die tatsächliche Bildschirmgröße nach Android N?
Antwort
Display.getRealMetrics(DisplayMetrics)
wird die tatsächliche Anzeigegröße zurückgeben.
Eine Methode in der Kern-API, die mit 'getReal' für diese lange beginnt, ist wirklich beunruhigend. Wir müssen das wirklich aufräumen. – milosmns
Bis dahin konnte ich keine passende Lösung dafür finden, aber ich handle mit der dichteDpi von jeder Auflösung, die geändert wird. Genau wie folgt aus:
private int getScreenDensityDPI() {
DisplayMetrics metrics = new DisplayMetrics();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
getWindowManager().getDefaultDisplay().getRealMetrics(metrics);
} else {
getWindowManager().getDefaultDisplay().getMetrics(metrics);
}
return metrics.densityDpi;
}
private int getNumberItemsByScreenResolution() {
int densityDPI = getScreenDensityDPI();
if (densityDPI <= 140) {
return 6;
} else if (densityDPI <= 160) {
return 5;
} else {
return 4;
}
}
Während niedrigsten der densityDPI ist, am höchsten ist die Auflösung des Displays wird in Ihrem Android-N-Gerät sein.
Sie können die tatsächliche Gerätegröße im Multi-Window-Modus mit Display
oder DisplayMetrics
erreichen.
Mit Display:
private void findRealSize(Activity activity)
{
Point size = new Point();
Display display = activity.getWindowManager().getDefaultDisplay();
if (Build.VERSION.SDK_INT >= 17)
display.getRealSize(size);
else
display.getSize(size);
int realWidth = size.x;
int realHeight = size.y;
Log.i("LOG_TAG", "realWidth: " + realWidth + " realHeight: " + realHeight);
}
Mit DisplayMetrics:
private void findRealSize(Activity activity)
{
DisplayMetrics displayMetrics = new DisplayMetrics();
if (Build.VERSION.SDK_INT >= 17)
{
activity.getWindowManager().getDefaultDisplay().getRealMetrics(displayMetrics);
}
else
{
activity.getWindowManager().getDefaultDisplay().getMetrics(displayMetrics);
}
int realWidth = displayMetrics.widthPixels;
int realHeight = displayMetrics.heightPixels;
Log.i("LOG_TAG", "realWidth: " + realWidth + " realHeight: " + realHeight);
}
Nichts davon funktionierte für sasmung S7, Android 7 –
- 1. Android: Wie bekomme ich die tatsächliche Bildschirmgröße des Geräts?
- 2. Wie bekomme ich die Bildschirmgröße von XAML?
- 3. Wie bekomme ich die Bildschirmgröße mit ViewHolder?
- 4. Wie bekomme ich die Bildschirmgröße mit Code?
- 5. Wie bekomme ich die Bildschirmgröße in Tkinter?
- 6. Wie bekomme ich die tatsächliche Bildbreite und -höhe mit jQuery?
- 7. Wie bekomme ich die Bildschirmgröße in Firefemonkey FM3?
- 8. Wie bekomme ich die aktuelle Bildschirmgröße des Bootstrap?
- 9. android-toolbar erweitert die Bildschirmgröße
- 10. PhoneGap/Cordova Android erhalten Bildschirmgröße nach onDeviceReady
- 11. Android-Layouts nach Bildschirmgröße, nicht dpi
- 12. Android Bildschirmgröße Skalierung
- 13. Wie kann ich die Größe des Android-Anwendungsfensters und nicht die physische Bildschirmgröße bekommen?
- 14. JavaFxPorts Bildschirmgröße
- 15. Wie bekomme ich die Zeilen nach morgen?
- 16. Wie bekomme ich die letzte n Reihe von Pandas Dataframe?
- 17. Wie bekomme ich die ganze Kombination von n Binärwert?
- 18. Wie bekomme ich die letzten N Dokumente mit Mongoid?
- 19. Meteor mongodb: Wie bekomme ich die N-ten Aufzeichnungen?
- 20. Wie bekomme ich die dynamische Rasteransicht Android?
- 21. Android Kamera Bildschirmgröße
- 22. Andere Bildschirmgröße auf Android
- 23. Tatsächliche Textbreite android
- 24. Wie erhalte ich Bildschirmgröße in Xamarin.Forms?
- 25. Android - Hintergrundbild festlegen Telefon Bildschirmgröße
- 26. Wie wird die Spalte je nach Bildschirmgröße bestellt?
- 27. flot on android: wie man die Bildschirmgröße passt
- 28. Wie Bildschirmgröße für alle Android-Geräte anpassen
- 29. Wie bekomme ich Android-Absturzprotokolle?
- 30. Wie bekomme ich die aktuelle SIM-Kartennummer in Android?
Warum wollen Sie die aktuelle Bildschirmgröße? – ianhanniballake
"Die Fenstergröße Ihrer App kann halb so groß sein" - Sobald wir Geräte erhalten, die den Freiform-Multifenstermodus unterstützen, kann Ihre Fenstergröße viel weniger als die Hälfte des Bildschirms betragen. – CommonsWare
@ianhanniballake sagen Sie haben eine Dienstprogramm-App, die Sie über die Bildschirmgröße Ihres Geräts (Breite, Höhe, Diagonale) oder über Apps informiert, die versuchen, die Bildschirmgrößen der Benutzer zu erfassen/zu protokollieren. Ich bin nur neugierig, ob es eine alternative einfache Möglichkeit, es mit Android zu tun N –