2010-10-26 3 views
5

Я совершенно не знаком с программированием на Android (просто сделал некоторые уроки/прочитал руководства для разработчиков и т. Д.), И как каждый новичок я хочу сделать бесполезную игру :-).Объединение SurfaceView с другими видами, такими как TextView и Buttons

В настоящее время я борюсь с макетом разных видов. Как и в примере, я сделал класс, который расширяет SurfaceView и помещает его в FrameLayout. Вокруг этого SurfaceView Я хочу иметь другой Вид как Buttons & TextViews. Что-то вроде этого:

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

мне удалось сделать что-то подобное с FrameLayout и RelativeLayouts (наклеивания TextViews по краям экрана), но я хотел бы, чтобы лучше контролировать размер SurfaceView так как он должен быть кратным по ширине и высоте объекта (ов), я буду рисовать его. Я пробовал установить layout_width и layout_height на некоторые значения dp, но когда я начинаю рисовать по 0,0, он все еще находится в самом верхнем левом углу (где TextView есть ..).

Итак, какова наилучшая практика для достижения макета, как указано выше? С помощью какого макета? Или мне лучше нарисовать текст внутри функции draw() моего SurfaceView?

+0

Вы должны опубликовать свой xml, чтобы дать людям лучший ключ к тому, что проблема может быть. – MikeIsrael

ответ

6

Макеты - это правильный способ объединить контент OpengGL с кнопками, надписями и другими типами объектов вида. Вы можете комбинировать макеты внутри других макетов ... так что вы можете создавать свой экран шаг за шагом, комбинируя линейные макеты или все, что вы предпочитаете.

Например, вы можете использовать относительный макет для установки кнопок (b1, b2) и остальную частью экрана:

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

Тогда внутри зоны 1, вы можете использовать горизонтальную линейную раскладку 3 основные колонны

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

Внутри c2 вы можете поместить SurfaceView, а в c1 текстовой метки

Внутри с3 будет новая вертикальная линейная разметка для отображения текста ла бел.

+----+ 
| t1 | 
+----+ 
| t2 | 
+----+ 
| t3 | 
+----+ 
Смежные вопросы