在按照 HeyZap 网站上的说明进行操作时,我注意到横幅被添加到 FrameLayout 中,如下所示:
FrameLayout bannerWrapper = (FrameLayout) findViewById(R.id.banner_wrapper);
我使用 Android Studio 在布局文件夹中创建了一个activity_main.xml文件,并创建了一个简单的 FrameLayout,如下所示:
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/banner_wrapper"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
</FrameLayout>
为了访问新创建的"banner_wrapper"FrameLayout,我必须在OnCreate()方法中调用setContentView(R.layout.activity_main)。这确实显示了横幅,但也可能导致 Cocos2dx 视图不显示。有没有办法将我的"banner_wrapper"覆盖在原始的 Cocos2dx 视图上?或者有更好的方法可以做到这一点吗?
我设法通过完全跳过activity_main.xml文件并在代码中创建所有必要的视图来解决此问题:
LinearLayout layout = new LinearLayout(activity);
int gravity= Gravity.BOTTOM | Gravity.CENTER_HORIZONTAL;
layout.setGravity(gravity);
activity.addContentView(layout, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
BannerAdView banner = new BannerAdView(activity);
layout.addView(banner);
layout.bringToFront();
banner.load();