Festlegen eines festen Seitenverhältnisses für ein Layout in Android
Ich versuche, legen Sie die Breite des layout auf "fill_parent", während mit der Höhe der Ansicht einfach auf die gleiche Länge, machen das layout ein Quadrat.
Alle Anregungen dankbar, vielen Dank im Voraus! 😀
InformationsquelleAutor der Frage Bolton | 2012-09-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit der Einführung der ConstraintLayout Sie nicht haben, schreiben Sie entweder eine einzige Zeile code oder Dritte, oder sich auf
PercentFrameLayout
wurden als veraltet markiert in 26.0.0.Hier ist das Beispiel wie 1:1 Seitenverhältnis für Ihr layout mit der
ConstraintLayout
:Oder anstelle der Bearbeitung der XML-Datei können Sie Bearbeiten Ihr layout direkt im Layout-Editor:
InformationsquelleAutor der Antwort Eugene Brusov
In Ihrem bauen.gradle hinzufügen:
und in Ihrem layout.xml wrap was anzeigen oder viewgroup, die Sie wollen, zu Folgen, ein Verhältnis innerhalb einer PercentFrameLayout wo:
dann für die Ansicht oder viewgroup, die Sie wollen, zu Folgen, ein Verhältnis ersetzen android:layout_width und android:layout_height:
und haben Sie eine Ansicht oder eine viewgroup, wo das Seitenverhältnis ist 16:9 (1.78:1) mit der Breite passend zu den Eltern und die Höhe entsprechend angepasst.
Hinweis: Es ist wichtig, dass Sie entfernen Sie die normalen Eigenschaften width und height. Lint wird sich beschweren, aber es wird funktionieren.
InformationsquelleAutor der Antwort Espen Riskedal
Könnten Sie versuchen, zunächst die Einstellung der
layout_height
zuwrap_content
. Aber ich glaube, Sie haben zu gehen in code. Nur zu Experimentieren, in Ihren Aktivitäten versuchen Sie so etwas wie:Wo
R.id.squareView
ist dieid
von der Ansicht in Frage. Und beachten Sie, dass dieser code ist eingebunden in dasonGlobalLayout
anrufen, um sicherzustellen, dasssquareView.getWidth()
einen sinnvollen Wert.InformationsquelleAutor der Antwort newbyca
Erstellte ich ein layout-Bibliothek für ähnliche Verwendung. Fühlen Sie sich frei, es zu benutzen.
RatioLayouts
Installation
Fügen Sie diese an den Anfang der Datei
Nutzung
Definieren 'app' - namespace root view in das layout
Gehören diese Bibliothek in Ihrem layout
InformationsquelleAutor der Antwort riteshakya037
InformationsquelleAutor der Antwort Aditya Nikhade
InformationsquelleAutor der Antwort mohamed murashid
set Höhe als
fill_parent
die Breite alswrap_content
und fixieren Sie das Seitenverhältnis mit
android:adjustViewBounds="true"
InformationsquelleAutor der Antwort Aditya Nikhade