0

admobを使い始めようとしていますが、思ったより難しいようです。小さなテストアプリを書きたかっただけです。このアプリでは、サーフェスビューに何かを描画し、それにadmobの例を追加します。

私の主な活動では、onCreateメソッドで次のことを行います。

AndroidFastRenderViewは、SurfaceViewの私の実装です。

requestWindowFeature(Window.FEATURE_NO_TITLE);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                WindowManager.LayoutParams.FLAG_FULLSCREEN);
        boolean isLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE;

        int frameBufferWidth = isLandscape ? 480 : 320;
        int frameBufferHeight = isLandscape ? 270 : 430;

        Bitmap frameBuffer = Bitmap.createBitmap(frameBufferWidth,
                frameBufferHeight, Config.RGB_565);


        renderView = new AndroidFastRenderView(this, frameBuffer);
        graphics = new AndroidGraphics(getAssets(), frameBuffer);

        adView = new AdView(this, AdSize.BANNER, "XXX");
        adView.setVisibility(View.VISIBLE);


        FrameLayout layout = new FrameLayout(this);
        FrameLayout.LayoutParams gameParams = new FrameLayout.LayoutParams(
                FrameLayout.LayoutParams.WRAP_CONTENT,
                FrameLayout.LayoutParams.WRAP_CONTENT);

        FrameLayout.LayoutParams adsParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT,
                FrameLayout.LayoutParams.WRAP_CONTENT);

        layout.addView(adView, 0, adsParams);

        layout.addView(renderView, 1, gameParams);
        setContentView(layout);


        AdRequest adRequest = new AdRequest();
        adRequest.addTestDevice(AdRequest.TEST_EMULATOR);
        adView.loadAd(adRequest);

これを行うと、画面全体がAndroidFastRenderViewでいっぱいになります。ただし、AndroidFastRenderViewを追加しないと、広告が表示されます。したがって、問題は、AndroidFastRenderViewが広告の上に描画されている(フレームバッファのサイズに問題があった可能性がある)か、AndroidFastRenderViewが広告のスペースを「盗む」ことだと思います。

私の問題が何であるかを理解し、誰かが私の問題を解決するのを手伝ってくれることを願っています

あなたの、ルーカス

4

1 に答える 1

0

FrameLayoutの代わりにRelativeLayoutを使用してみましたか?

final int adId = 0x12345;
adView.setId(adId);
RelativeLayout layout = new RelativeLayout(this);

RelativeLayout.LayoutParams adParams =
    new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                                    RelativeLayout.LayoutParams.WRAP_CONTENT);
adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);
RelativeLayout.LayoutParams gameParams =
    new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,
                                    RelativeLayout.LayoutParams.WRAP_CONTENT);
gameParams.addRule(RelativeLayout.BELOW, adId);
layout.addView(adView, adParams);
layout.addView(renderView, gameParams);
setContentView(layout);
于 2012-07-27T22:21:20.733 に答える