【发布时间】:2015-04-13 14:21:29
【问题描述】:
我正在使用 andengine 和 google play 服务进行游戏开发,我的游戏运行良好。但是,一旦我添加了调用“onSetContentView”回调的 admob,我的游戏屏幕就会变黑,并且只有广告可见。这是我的回调 onSetContentView 函数:
@override
protected void onSetContentView() {
this.mRenderSurfaceView = new RenderSurfaceView(this);
this.mRenderSurfaceView.setRenderer(mEngine, this);
final android.widget.FrameLayout.LayoutParams surfaceViewLayoutParams = new FrameLayout.LayoutParams(super.createSurfaceViewLayoutParams());
Log.i(TAG,"In funcion OnSetContaitView");
//Creating the banner view.
AdView adView = new AdView(this);
adView.setAdSize(com.google.android.gms.ads.AdSize.BANNER);
adView.setAdUnitId("my adunit id");
//create add req
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice(AdRequest.DEVICE_ID_EMULATOR)// This is for emulators
//test mode on DEVICE (this example code must be replaced with your device uniquq ID)
.addTestDevice("2EAB96D84FE62876379A9C030AA6A0AC") // Nexus 5
.addTestDevice("TA93303NP9")
.build();
adView.loadAd(adRequest);
final FrameLayout.LayoutParams adViewLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_HORIZONTAL | Gravity.BOTTOM);
final FrameLayout frameLayout = new FrameLayout(this);
final FrameLayout.LayoutParams frameLayoutLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.FILL_PARENT);
frameLayout.addView(this.mRenderSurfaceView,surfaceViewLayoutParams);
frameLayout.addView(adView,adViewLayoutParams);
this.setContentView(frameLayout, frameLayoutLayoutParams);
adView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
}
目前我可以看到游戏画面或广告。请建议如何获得游戏画面和广告。
提前致谢。
【问题讨论】:
-
我不知道这是否会回答您的问题,但您使用的是
FrameLayout,它的作用是将View放在彼此之上,因此无论是addview 在顶部gameview 或反之亦然,而您正在使用Fill_parent为什么不使用 wrap_content 或一般为什么不使用LinearLayout?因为您的addView的类型是Smart_Banner,所以它的高度是50dp,这是固定的。先生,我清醒了吗?
标签: android admob google-play-services andengine