0

私のゲームでは、Millennial MediaとAdmobの両方のバナーを実装しています(画面の上部にMillennial、下部にAdmob)。すべてはRelativeLayoutを使用してAndroid/Javaでプログラム的に実行されます。最初に、MMAdViewを追加し、次にOpenGlサーフェスを追加し、最後にAdmobViewを追加します。Android <4.0のデバイスでは、すべてが正しく描画されますが、Ice Cream Sandwichでは、ミレニアルバナーの代わりに大きな白い領域があります。私はこの問題に長い間苦労してきました。そこで何が間違っている可能性があるかについてのアイデアはありますか?
更新:私の友人は、Wifiネットワークに接続していないときにこの白い長方形の領域が表示されると私に言いました。私のコードでは、ネットワークの可用性をチェックしていません。バナーを表示するには、millennialView.setVisibility(View.VISIBLE)メソッドをトリガーするだけです。

    adMobView = new AdView(this, AdSize.BANNER, ADMOB_BANNER_ID);
    adMobView.setAdListener(getAdMobListener());
    AdRequest request = new AdRequest();
    adMobView.loadAd(request);

    RelativeLayout.LayoutParams lay = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
    lay.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);        
    layout.addView(adMobView, lay);

// ... adding OpenGL surface

    int bannerWidth = (int)(displayMetrics.widthPixels * displayMetrics.density);

    Hashtable<String, String> map = new Hashtable<String, String>();
    map.put(MMAdView.KEY_WIDTH, String.valueOf(bannerWidth));
    map.put(MMAdView.KEY_HEIGHT, "53");
    millennialView = new MMAdView(this, MILLENNIAL_BANNER_ID, MMAdView.BANNER_AD_TOP, 30, map);
    millennialView.setId(MMAdViewSDK.DEFAULT_VIEWID);
    millennialView.setListener(getMillennialListener());
4

1 に答える 1

0

ネットワークが利用できないときにミレニアル世代のバナーが表示されることが問題だったようです。ここで、バナーを表示する前に、ネットワーク接続があるかどうかを確認します。

    ConnectivityManager connectivityMgr =
        (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE);
    if(connectivityMgr != null && connectivityMgr.getActiveNetworkInfo() != null) {
            millennialView.setVisibility(View.VISIBLE);
于 2012-07-05T15:05:10.200 に答える