在我的游戏中,我同时实现了 Millennial Media 和 Admob 横幅(Millennial 在屏幕顶部,Admob 在底部)。一切都是使用RelativeLayout在Android/Java中以编程方式完成的,首先我添加MMAdView,然后是OpenGl表面,最后是AdmobView。在 Android < 4.0 的设备上,一切都正确绘制,但在冰淇淋三明治上,有一个巨大的白色区域,而不是千禧年横幅。我已经为这个问题苦苦挣扎太久了。有什么想法可能有什么问题吗?
更新:我的朋友告诉我,当他没有连接到 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());