2015-01-10 2 views
6

Ich würde gerne wissen, ob es eine andere alternative oder geeignete Möglichkeit zur Entwicklung der Benutzeroberfläche einer Android-App gibt. Ich weiß, dass XML verwendet wird und warum auch - aber gibt es andere Methoden, auch wenn sie nicht sehr effizient sind?Alternativen zu XML durch Entwicklung Android App-Layout?

+1

Die Hauptvorteile der Verwendung von XML-Layout sind die Trennung von UI und Code und die einfache Unterstützung für unbekannte Bildschirmgrößen. Warum gibst du die auf? – Simon

+2

Sie können dasselbe ohne XML erreichen. XML ist zu starr für meinen Geschmack. – Aggressor

+1

Ein weiterer Grund, warum ich JSON verwenden möchte, ist, dass es einfacher ist, UI-Artists für die JSON-Datei verantwortlich zu machen, als dass sie selbst in das XML eindringen. – Aggressor

Antwort

8

Sie können Ihre UI gerne erstellen, indem Sie Java-Objekte direkt erstellen und sie in ihre Eltern-Kind-Beziehungen zusammenführen, einschließlich der Layout-Manager, die zur Steuerung von Größen und Positionierung benötigt werden.

Und, das ist, dass Sie gerne Ihre eigenen Mittel zur Definition einer Benutzeroberfläche (parsen Sie einige JSON, verwenden Sie einen Zufallsgenerator, etc.), wie am Ende ist alles nur Java-Objekte.

+0

Das habe ich für iOS gemacht und was ich für Android machen werde. Ich erstelle eine 'AutoLayout' Java-Klasse, die ein JSON-Objekt analysiert. zB '[" type ":" button "," x "20," unten ":" topBar "," buttonText ":" Dies ist ein Button "]' usw. – Aggressor

3

Wenn Sie Spiele entwickeln, gibt es einige Frameworks wie Cocos2d-x oder Unity, die ihre eigenen Möglichkeiten haben, Inhalte auf dem Bildschirm anzuzeigen. Sie können auch für Apps nützlich sein, die eine Art 3D-Visualisierung benötigen (Unity kann beispielsweise in eine native App eingebettet sein).

Darüber hinaus besteht die Alternative zu XML darin, Ansichten in Java programmatisch zu erstellen und die Ansichtshierarchie selbst zu verwalten. Sie können beide kombinieren, was besonders nützlich ist, wenn Sie Inhalte dynamisch erstellen möchten, basierend auf einigen Daten, die Sie zur Laufzeit abrufen.