Добавление вида, расширяющегося из SurfaceView в макет, дает мне пустой экран - PullRequest
0 голосов
/ 06 июня 2010

Я очень плохо знаком с программированием на Android, так что это, вероятно, что-то довольно простое. У меня просто есть XML-макет с несколькими кнопками. Я пытаюсь следовать модели, представленной в демонстрации JetBoy, поэтому я добавляю вид к макету, который расширяет SurfaceView. Когда это новое представление добавляется в мой XML-макет, я просто получаю пустой экран.

Вот макет XML, если это поможет. Элемент gameview - то, что заставляет экран быть пустым

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:alwaysDrawnWithCache="true">
 <game.test.gameEngine
      android:id="@+id/gameView"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"/>
<Button android:text="Easy" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/EasyButton"></Button>
<Button android:text="Medium" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/MedButton"></Button>
<Button android:text="Hard" android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/HardButton"></Button>
<DatePicker android:id="@+id/DatePicker01" android:layout_width="wrap_content" android:layout_height="wrap_content"></DatePicker><Button android:id="@+id/Button04" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Exit"></Button>


</LinearLayout>

Ответы [ 2 ]

2 голосов
/ 06 июня 2010

что такое game.test.gameEngine?Расширяет ли он класс View?Если это так, он занимает весь экран.ширина и высота установлены на "fill_parent", что означает, что кнопки и указатель даты находятся за пределами экрана.Если вы хотите, чтобы кнопки отображались в верхней части окна игрового движка, вам нужно будет либо установить кнопки в качестве дочерних элементов игрового движка, либо установить значения высоты и ширины для значений, которые оставят место для кнопок..

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

1 голос
/ 06 июня 2010

Я бы абсолютно рекомендовал изучить Относительный макет, если вы хотите иметь основной вид игры с другими вещами, такими как кнопки сверху. Я сделал GLSurfaceView таким образом, и он работает очень хорошо.

Общая идея с относительной компоновкой заключается в том, что без заданных параметров компоновки каждое заданное представление рисуется в левом верхнем углу. Тем не менее, когда говорят, что они должны быть выровнены где-то в родительском элементе или рядом с (слева / справа или выше / ниже) другим представлением, вы можете управлять тем, где что-либо появляется.

Также полезно отметить, что каждый новый перечисленный вид появляется поверх другого (если не выровнен в противном случае), поэтому сначала вы должны отобразить основной игровой вид и кнопки после него.

...