1

白色矩形区域(显示 MMedia 横幅时覆盖整个屏幕)存在于 Android 4.0+ 的设备上,同时仅使用纯 Java 代码。添加指定宽度和高度的行并不能解决问题(白屏仍然存在)。希望千禧年团队能对此问题进行调查。干杯

MMSDK.initialize(this);

millennialView = new MMAdView(this);
millennialView.setApid(MILLENNIAL_BANNER_ID);
millennialView.setId(MMSDK.getDefaultAdId());

RelativeLayout.LayoutParams lay2 = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
lay2.addRule(RelativeLayout.ALIGN_PARENT_TOP);
layout.addView(millennialView, lay2);

Map<String, String> metaData = new HashMap<String, String>();
metaData.put("width", "480");
metaData.put("height", "60");

MMRequest mmediaRequest = new MMRequest();
mmediaRequest.setMetaValues(metaData);
millennialView.setMMRequest(mmediaRequest);
millennialView.setListener(getMillennialListener());

millennialView.getAd(); 
4

3 回答 3

0

这与将 MAdView 应用于布局层次结构时的大小有关。由于 WebView 的内部更改,MMAdView 无法识别 WRAP_CONTENT。因此,Millennial 的文档要求您明确设置广告尺寸。请参阅此处的第二步:http: //docs.millennialmedia.com/android-SDK/AndroidBannerAds.html

一个有趣的副作用:如果您使用中介合作伙伴(例如 AdMob 或 MoPub),则必须对其横幅视图小部件(分别为 AdView 和 MoPubView)执行相同操作。

于 2013-04-23T13:58:31.990 回答
0

我最终将所有 MMedia 相关代码放入 xml 文件并用 android:layout_width="480dp" android:layout_height="60dp" 包装它

于 2013-04-23T15:37:24.743 回答
0

最新的 MMedia APi 5.2 也有同样的问题。

我使用列表视图来附加 Adview。使用匹配内容作为高度。

经过一些测试,我发现横幅广告仅在我拥有的设备上的 Android 4.04 中占据整个屏幕。4.4和姜饼似乎还可以。

这是我解决问题的代码:

float density = getResources().getDisplayMetrics().density;
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB_MR2) {
    height = display.getHeight();
    width = display.getWidth();
} else {
    Point size = new Point();
    display.getSize(size);
    height = size.y;
    width = size.x;
}

LinearLayout layout = (LinearLayout)findViewById(R.id.llBannerAd);
if (width/density > 727 && height/density > 600) {
        mAdView.setAdSize(AdSize.LEADERBOARD);
        layout.setLayoutParams(new LinearLayout.LayoutParams(width, 91));
} else if (width/density > 467 && height/density > 400) {
    mAdView.setAdSize(AdSize.FULL_BANNER);
    layout.setLayoutParams(new LinearLayout.LayoutParams(width,61));
} else {
        mAdView.setAdSize(AdSize.BANNER);
    layout.setLayoutParams(new LinearLayout.LayoutParams(width, 55));
}
于 2014-04-15T22:08:18.220 回答