2014-12-04 4 views
0

Хорошо, поэтому концепция кажется достаточно простой, но Ищите по всему Интернету и еще не нашли решения. Поэтому я делаю свою первую игру для Android, woot. Но я хочу монетизировать его с помощью рекламы. Здесь возникает проблема. Поскольку я не использую макет для своей игры, но вместо этого GLSurfaceView, я не могу найти ничего о том, как настроить объявление над этим. В каждом учебном пособии Google используется либо макет, либо требуется создать макет через java. Проблема в том, что все они все еще используют SurfaceView, а не GLSurfaceView. Как реализовать объявление над GLSurfaceView? Я имею в виду, что большинство игр логически будут сделаны с использованием openGL, а не холста, так что должен быть способ, верно? Любые предложения помогут. Если вы, ребята, должны увидеть какой-то код, дайте мне знать, но это довольно стандартный код из учебников glSurfaceView.Есть несколько видов просмотра одновременно?

+0

Сделайте свой вопрос simple.Try избежать абзацев вопросов –

+0

Почему нет макет с 'GLSurfaceView' в нем? –

ответ

0

GLSurfaceView - это просто SurfaceView с некоторым кодом, обернутым вокруг него, для управления потоками и контекстом EGL. Они не очень разные.

SurfaceView имеет две части: «поверхность» и «вид». Вид является частью иерархии представления и обычно является просто прозрачным окном, используемым для макета. Весь пользовательский интерфейс, основанный на представлении, нарисован на одном уровне. Оформление GLES выполняется на поверхности, которая представляет собой отдельный слой, скомпонованный системой. По умолчанию поверхностный слой находится за слоем представления, но вы можете настроить его при создании SurfaceView.

Поскольку Surface находится за View, вы можете нарисовать свои объявления с помощью видов в верхней части игры, не мешая им.

Вы можете найти несколько примеров в Grafika. Например, активность «записи GL-приложения» имеет элементы пользовательского интерфейса (некоторые текстовые и радио-кнопки) поверх анимации GLES. Он использует относительный макет и позиционирует элементы пользовательского интерфейса поверх SurfaceView.

+0

Спасибо за этот ответ fadden, я посмотрю на это и посмотрю, смогу ли я что-то понять. Я скоро отправлю сообщение, давая понять всем, понял ли я его или вам нужна дополнительная помощь. Я проверю, что Grafika свяжутся – Zero

0

Согласно этому manual, вы можете проверить код удар:

TextView textView = new TextView(this); 
textView.setText("overlay!"); 
addContentView(textView, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); 

Очевидно, что код находится в деятельности.

0

Так что я сделал много исследования и, наконец, нашел решение, которое работает, благодаря Фаддно для получения меня на верном пути кстати :)

mGLView = new MyGLSurfaceView(this); 


    LinearLayout screenLayout = new LinearLayout(this); 
    screenLayout.setOrientation(LinearLayout.VERTICAL); 

    // Create a banner ad. The ad size and ad unit ID must be set before calling loadAd. 
    adView = new AdView(this); 
    adView.setAdSize(AdSize.SMART_BANNER); 
    adView.setAdUnitId("/6499/example/banner"); 


    AdRequest.Builder adRequest= new AdRequest.Builder(); 
    adView.loadAd(adRequest.build()); 

    screenLayout.addView(adView); 
    screenLayout.addView(mGLView); 

    setContentView(screenLayout);