Вам вообще не нужно рисовать рекламу на своей поверхности OpenGL, просто установите какой-либо макет для своей деятельности в качестве просмотра контента и добавьте объявление и поверхность в макет.
Вы можете использовать FrameLayout , если вы не возражаете, что реклама будет покрывать вашу поверхность, или RelativeLayout , если вам нужна выделенная область, скажем, насверху, но убедитесь, что вы разместили хороший рекламный баннер под рекламой, чтобы избежать появления черного ящика в случае отсутствия сетевого подключения.
Мы используем Admob через Adwhirl , поэтому в нашем случаеэто выглядит примерно так:Я никогда не использовал Admob напрямую, но думаю, что это должно быть что-то похожее.
main.xml :
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/layout_main"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
</FrameLayout>
YourActivity.java :
FrameLayout layout = (FrameLayout) findViewById(R.id.layout_main);
GLSurfaceView surface = ...
FrameLayout.LayoutParams surfaceParams = new FrameLayout.LayoutParams(...);
layout.addView(surface, surfaceParams);
AWhirlLayout adWhirlLayout = ...
FrameLayout.LayoutParams adsParams = new FrameLayout.LayoutParams(...);
mainLayout.addView(adWhirlLayout, adsParams);