2010-10-26 9 views
5

Ich bin völlig neu in der Android-Programmierung (habe nur ein paar Tutorials/lese die Dev-Guides etc.) und als Neuling möchte ich ein nutzloses Spiel machen :-).Kombinieren von SurfaceView mit anderen Ansichten wie TextView und Buttons

Derzeit habe ich mit dem Layout der verschiedenen Ansichten zu kämpfen. Ähnlich dem Beispiel habe ich eine Klasse erstellt, die eine SurfaceView erweitert und diese in eine FrameLayout einfügt. Um diese SurfaceView möchte ich andere Ansichten wie Buttons & TextViews haben. Etwas wie folgt aus:

----------------------------------------------- 
| TextView | SurfaceView   | TextView | 
|   |      |   | 
------------      ------------ 
|   |      | TextView | 
|   |      |   | 
|   |      ------------ 
|   |      | TextView | 
|   |      |   | 
|   |      ------------ 
|   |      |   | 
|   |      |   | 
----------------------------------------------- 
| Button        Button | 
----------------------------------------------- 

Ich habe es geschafft, mit einem FrameLayout und RelativeLayouts, so etwas zu tun (die TextViews an den Rändern des Bildschirms kleben), aber ich möchte besser die Größe des SurfaceView steuern da es ein Vielfaches in der Breite und Höhe der Objekte sein soll, werde ich darin zeichnen. Ich habe versucht, layout_width und layout_height zu einigen dp-Werten zu setzen, aber wenn ich anfange, bei 0,0 zu malen, ist es noch in der sehr linken oberen Ecke (wo die TextView ist ..).

Also, was ist die beste Vorgehensweise, um ein Layout wie oben zu erreichen? Mit welchem ​​Layout? Oder sollte ich meinen Text lieber innerhalb der draw() Funktion meiner SurfaceView stattdessen zeichnen?

+0

Sie sollten Ihre XML-Datei posten, um den Leuten einen besseren Hinweis darauf zu geben, wo das Problem liegen könnte. – MikeIsrael

Antwort

6

Layouts sind der richtige Weg, um OpenGGL-Inhalte mit Schaltflächen, Beschriftungen und anderen Arten von Ansichtsobjekten zu kombinieren. Sie können Layouts in anderen Layouts kombinieren ... so können Sie Ihren Bildschirm Schritt für Schritt kombinieren, indem Sie lineare Layouts oder was auch immer Sie bevorzugen kombinieren.

Zum Beispiel können Sie eine Relative Layout-Setup mit den Tasten (b1, b2) und den Rest des Bildschirms:

+-----------+ 
| Zone 1 | 
+-----+-----+ 
| b1 | b2 | 
+-----+-----+ 

dann innerhalb der Zone 1, können Sie eine horizontale lineare Layout für die Verwendung 3 Hauptsäulen

+----+----+----+ 
| c1 | c2 | c3 | 
+----+----+----+ 

Innerhalb von c2 können Sie die Surface platzieren, und in c1 der Textbeschriftung

Innerhalb c3 wird ein neues Vertical Linear Layout, den Text la anzuzeigen bels.

+----+ 
| t1 | 
+----+ 
| t2 | 
+----+ 
| t3 | 
+----+ 
Verwandte Themen