Ich entwickle eine Anwendung im Android Studio, die korrekt auf 1080x1920 Handys (und niedriger) angezeigt wird, aber für Handys wie meins (s8) die App wird vermasselt und ich kann nicht finde einen Weg, um die App für jede Bildschirmgröße zu reparieren. Also, ich frage mich, ob es eine Möglichkeit gibt, die Bildschirmgröße der App zu 1080x1920 (mit sagen wir mal schwarze Balken oben & unten auf dem Bildschirm) einzuschränken, auch wenn die Abmessungen eines Handys größer sind (das wird automatisch in Spielen gemacht, die sind nicht kompatibel mit s8). Wissen Sie, wie Sie diesen Effekt erzielen können?Einschränken der Bildschirmgröße einer App basierend auf der Auflösung eines Telefons
Antwort
Es ist möglich, dass Sie Ihre Elternansicht auf die exakte Größe mit dem gewünschten Seitenverhältnis einstellen können (1080x1920 wird auf 9x16 skaliert). Dazu müßten Sie die Ansicht programmatisch nennen (oder es in Code erstellen) und Breite und Höhe festgelegt in Pixel mit LayoutParams:
yourView.setLayoutParams(new LayoutParams(width, height));
für das Gewicht und Höhe Sie die aktuellen Bildschirmabmessungen wünschen würden, die Sie können von den Windowmanagern erhalten:
WindowManager windowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
Display display = windowManager.getDefaultDisplay();
Point point = new Point();
display.getSize(point);
int x = point.x;
int y = point.y;
Hier finden Sie den x und y, erhalten, die Ihre aktuelle Bildschirmgröße hält (in Pixeln). Dann entscheiden Sie, welche verkleinert werden soll (um das Seitenverhältnis von 9x16 beizubehalten) und legen Sie die LayoutParams Ihrer Elternansicht wie oben erwähnt fest.
Schließlich Ihr Set Ihre Inhalte ansehen als Ihre Eltern Ausblick:
setContentView(yourView);
, was darüber ist. Ich hoffe, das hilft.
EDIT: Da Sie Spiele erwähnt haben, kann ich Ihnen sagen, dass dort (wenn Sie Android SDK verwenden) Sie Ihre SurfaceView als übergeordnete Ansicht haben, ist das Verfahren gleich.
- 1. Textsize basierend auf der Bildschirmgröße
- 2. Layout ändern basierend auf der Bildschirmgröße
- 3. UI der Produktliste basierend auf der Bildschirmgröße
- 4. Sortierung divs basierend auf der Bildschirmgröße
- 5. UITableView: Festlegen der Höhe der Tabellenkopfansicht basierend auf der Bildschirmgröße
- 6. Switching CSS-Klassen basierend auf der Bildschirmgröße
- 7. jQuery - Skripte basierend auf der Bildschirmgröße ausführen
- 8. Bildgröße/Auflösung basierend auf der Webseite Layout
- 9. Code zum Positionieren instanziierter UI-Prefab basierend auf der Bildschirmgröße?
- 10. Bildschirmgröße in PHP-Auflösung
- 11. wie auf der Bildschirmgröße
- 12. Ändern der Bitmap-Auflösung in Android App
- 13. Größe und Platzierung der Symbole basierend auf der Bildschirmgröße
- 14. Ändern auf AMP-Seite basierend auf der Bildschirmgröße
- 15. Überprüfung der Länge eines Telefons mit PHP
- 16. Xcode Swift Moving UIElements basierend auf der Bildschirmgröße
- 17. Tabelle Zeile Child Count basierend auf der Bildschirmgröße
- 18. Disable jQuery Basierend auf Bildschirmgröße
- 19. Erstellen eines UIButton ein% der Bildschirmgröße
- 20. Layout für Bildschirmgröße 18.5x9
- 21. Elemente in verschiedenen Containern basierend auf der Bildschirmgröße neu anordnen
- 22. Einschränken des Controllers/Anzeigenzugriffs basierend auf der Domain-Anzeigengruppe
- 23. Optimieren von .container mit .Container-Fluid basierend auf der Bildschirmgröße
- 24. Bild ersetzen basierend auf der Bildschirmgröße mit Jquery
- 25. (SemanticUI + React) HTML-Elemente basierend auf der Bildschirmgröße ändern?
- 26. Dynamische Include-Datei basierend auf der Bildschirmgröße funktioniert nicht
- 27. jQuery + Bootstrap Grid - Zeige Bilder basierend auf der Bildschirmgröße
- 28. Kivy - Wie wird die Fenstergröße basierend auf der Bildschirmgröße festgelegt?
- 29. CSS: Wie ändert Youtube sein Aussehen basierend auf der Bildschirmgröße?
- 30. Können Sie eine Bildschirmgröße/Auflösung eines Benutzers mit Javascript erhalten?
Nein, Sie sollten lesen, wie Sie Ihr Layout unabhängig von Ihrer Bildschirmgröße gleich machen. https://developer.android.com/training/multiscreen/index.html – tyczj
Verwenden Sie keine Pixel, verwenden Sie ** dp ** s (und ** sp ** s für Text). –
@tyczj danke, das hat mir sehr geholfen. Sollte ich diesen Thread löschen, da die Antwort in den Kommentaren liegt, oder können Sie ihn als Antwort posten, damit ich ihn darstellen kann? –