1
我已經實現了admob |使用andengine將GoogleMobileAdSDK加入到我的Android遊戲中。廣告正在加載到遊戲中,但在打開應用後第一次無法正確顯示。但是當我離開應用活動時,通過點擊添加或去谷歌播放排行榜並返回到應用程序,然後它開始正確顯示它。 所以基本上,當我打開應用程序的廣告來全寬,但幾乎與半高。如果點擊廣告,則轉到廣告鏈接,然後按下返回按鈕,廣告附帶全寬全高。卡住了3天:/Admob橫幅廣告顯示高度在安卓遊戲中無法正確顯示
public static AdView adView;
@Override
protected void onSetContentView() {
final FrameLayout frameLayout = new FrameLayout(this);
final FrameLayout.LayoutParams frameLayoutLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
adView = new AdView(this);
new AdView(this);
adView.setAdSize(AdSize.BANNER);
adView.setAdUnitId("MY AD UNIT ID");
final FrameLayout.LayoutParams adViewLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT, Gravity.RIGHT | Gravity.CENTER_HORIZONTAL);
this.mRenderSurfaceView = new RenderSurfaceView(this);
mRenderSurfaceView.setRenderer(this.mEngine, this);
AdRequest adRequest = new AdRequest.Builder()
.addTestDevice("MY EMULATOR ID")
.addTestDevice("MY DEVICE ID")
.build();
final FrameLayout.LayoutParams surfaceViewLayoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT, FrameLayout.LayoutParams.MATCH_PARENT);
frameLayout.addView(this.mRenderSurfaceView,surfaceViewLayoutParams);
frameLayout.addView(adView,adViewLayoutParams);
this.setContentView(frameLayout, frameLayoutLayoutParams);
adView.loadAd(adRequest);
Log.d("Ads","AdView banner size is "+adView.getWidth()+" and "+adView.getHeight());
//Creating the banner view.
}
此外,我在代碼中提供日誌以查看adview大小。它總是打印本上的應用程序的起始
AdView的橫幅大小是0和0
謝謝你。過去3-4天一直卡在它上面。這解決了這個問題。 :) 你可以多說一點清爽嗎?如果我想刷新廣告,我需要做些什麼? –
我的應用程序正在崩潰,因爲你提到和相同的地區。我到底要做什麼來阻止呢?我必須移除視圖並重新添加它,還是可以使用之前的framelayout本身? –
嗨,很高興我能幫上忙。您可以使用之前的frameLayout本身,只需在添加之前檢查adView.getParent是否爲空(這意味着adView未添加到frameLayout),這樣它只會將adView添加到frameLayout一次。我不知道這是否是最好的解決方案,但它的工作原理! – rdromao