2012-04-10 5 views
0

Ich wollte wissen, ob es möglich war, Widgets auf Android mit XML-Dateien genau zu positionieren? Aus meinen Experimenten scheint eine genaue Position über XML unmöglich. Programmatisch bin ich in der Lage, Dinge basierend auf der Breite und Höhe des Geräts perfekt zu positionieren. Mit XML und Dip-Werten scheinen die Dinge jedoch auseinander zu fallen. Hier ist eine example von was ich meine.Möglich, Positionierung in Android genau zu steuern mit XML

Mark Murphy, auf einem Artikel schrieb:

einige Entwickler, vielleicht die aus der Entwicklung "drag-and-drop" Schule von UI kommen, denken in erster Linie über die Positionen von Widgets . Sie denken, dass sie bestimmte Widgets bestimmte feste Größen an bestimmten festen Standorten haben wollen. Sie werden frustriert mit Android Layout-Manager (Container) und können auf die veraltete AbsoluteLayout als eine Möglichkeit, UIs wie sie zu entwerfen, gravitieren.

Das funktioniert selten auch auf Desktops, wie von Anwendungen gesehen werden, die Fenstergrößenanpassung nicht sehr gut handhaben. Ebenso funktioniert nicht auf mobilen Geräten, insbesondere Android, mit seinen Bildschirmgrößen und Auflösungen.

Statt über Positionen nachzudenken, über Regeln nachdenken. Sie müssen Android die "Geschäftsregeln" lehren, wo Widgets Größe und platziert werden, und dann diese Regeln interpretieren basierend darauf, was Bildschirm des Geräts tatsächlich in Bezug auf die Auflösung unterstützt.

source

Dies führt mich, dass eine präzise Positionierung zu glauben, mit XML-Dateien ist schwierig. Dies ist wichtig für meine App, weil ich Widgets auf einem Hintergrundbild auslege, sodass diese Widgets genau auf einem bestimmten Bereich platziert werden müssen, damit die Benutzeroberfläche insgesamt gut aussieht. Das Seitenverhältnis muss in allen Auflösungen erhalten bleiben. Kann ich all das mit XML-Dateien machen?

Danke! Jede Hilfe wird sehr geschätzt!

+1

Das Positionieren mit einem Hintergrund wird nicht empfohlen. Das Hintergrundbild passt sich an die verschiedenen Bildschirmgrößen an und wie würden Sie dann die Widgets anpassen können? Es ist im Grunde ein Do not Do It-Szenario. – HannahMitt

+0

danke hannahmitt. aber was ist mit der Erhaltung des Seitenverhältnisses des BG-Bildes? Was ist, wenn ich ein Bild habe, das nur mit einem Verhältnis von 2: 3 gut aussieht? – OckhamsRazor

Antwort

0

Ja, Sie können Pixel für Pixel Ihre Ansichten mit einer absolute layout positionieren. Als ich das letzte Mal überprüft habe, was vor einiger Zeit war, haben diese Drag & Drop-Schnittstellen tatsächlich eine für Sie erstellt. (Eigentlich nur nach dem Link zu suchen scheint, dass diese Klasse veraltet ist.)

Allerdings rate ich dringend davon ab, sie zu verwenden. Der Grund dafür ist, dass Sie für so viele verschiedene Bildschirmgrößen codieren, dass Pixel-für-Pixel-Abmessungen Probleme auf allen Geräten verursachen können.

Was ich empfehlen würde ist die Verwendung eines RelativeLayout. Ich verwende diese Art von Layout für alles, was ich kann. Sie können Ihre Objekte rechts neben oder über und unter anderen Elementen platzieren. Dies kombiniert mit Padding- und Margin-Optionen in DIP (Density Independent Pixels) sollte Ihnen erlauben, alles zu erstellen, was Sie wollen. Und es sollte auf den meisten Geräten gut aussehen.

+0

danke frank.Ich habe versucht, auf Relativlayout zu positionieren, konnte aber die Widgetpositionen nicht genau steuern. http://stackoverflow.com/questions/10088072/android-positioning-problems – OckhamsRazor

Verwandte Themen