Cocos2d Android - объединение CCGLSurfaceView и других представлений (например, Admob или Imageview) - PullRequest
0 голосов
/ 24 июня 2011

Я застрял в проблеме, чтобы получить комбинированный CCGLSurfaceView, работающий вместе с другими нативными представлениями Android, такими как, например, ImageView. Я начал разрабатывать игру, используя Cocos2D, и я планирую добавить в нее рекламу через admob позже. Поэтому я хочу запустить CCGLSurfaceView ( OpenGl View для моей игры) вверху, а под ним должно отображаться объявление.

Я уже пробовал несколько вещей, таких как добавление обоих представлений вручную (не через XML) в относительный макет, но продолжаю получать null pointers, и мое приложение закрывается.

Я также попробовал это руководство, где объясняется, как интегрировать admob в OpenGl SurfaceView. Но все же это не сработало, может быть, это потому, что я использую Cocos2d?

Не знаю, может ли кто-нибудь помочь мне с этой (может быть, специфичной для cocos2d) проблемой?

1 Ответ

1 голос
/ 24 июня 2011

Нам нужен ваш код (размещение ссылки на то, на чем вы основывались, не очень помогает в целом)

Мой подход заключается в определении всего этого в макете

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:gravity="center"
        android:orientation="vertical" 
        android:layout_width="fill_parent"
        android:layout_height="fill_parent">

        <LinearLayout 
            android:gravity="center_horizontal"
            android:orientation="horizontal"
            android:layout_alignParentTop="true"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content">

        </LinearLayout>

        <android.pixelrain.opengl.GLSurfaceViewChipmunk android:id="@+id/composed"
            android:gravity="center"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
        />

        <LinearLayout
            android:id="@+id/linearLayoutAd"
            android:layout_height="wrap_content"
            android:layout_width="fill_parent"
            android:layout_alignParentBottom="true"
            android:orientation="vertical"
            android:gravity="center_horizontal"
        />

</RelativeLayout>

Обратите внимание, что GLSurfaceViewChipmunk - это то, что вы заменяете на cocos2d.

, а затем в приложении

 private void InitAdView()
    {
        LinearLayout layout = (LinearLayout)findViewById(R.id.linearLayoutAd);

        // Create the adView
        adView = new AdView(this, AdSize.BANNER, AppSettings.AdmobAppId);

        ...set your add listener

        // Add the adView to the layout
        layout.addView(adView);
...