2012-07-27 68 views
0

我想開始使用admob,但它似乎比我想象的更難。 我只是想寫一個小測試應用程序,在這個應用程序中,我會在表面視圖上繪製一些東西,並向它添加一個admob示例。Android - admob和SurfaceView問題

在我的主要活動我做的在onCreate方法如下:

的AndroidFastRenderView是我實現SurfaceView的。

requestWindowFeature(Window.FEATURE_NO_TITLE); 
     getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN); 
     boolean isLandscape = getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE; 

     int frameBufferWidth = isLandscape ? 480 : 320; 
     int frameBufferHeight = isLandscape ? 270 : 430; 

     Bitmap frameBuffer = Bitmap.createBitmap(frameBufferWidth, 
       frameBufferHeight, Config.RGB_565); 


     renderView = new AndroidFastRenderView(this, frameBuffer); 
     graphics = new AndroidGraphics(getAssets(), frameBuffer); 

     adView = new AdView(this, AdSize.BANNER, "XXX"); 
     adView.setVisibility(View.VISIBLE); 


     FrameLayout layout = new FrameLayout(this); 
     FrameLayout.LayoutParams gameParams = new FrameLayout.LayoutParams(
       FrameLayout.LayoutParams.WRAP_CONTENT, 
       FrameLayout.LayoutParams.WRAP_CONTENT); 

     FrameLayout.LayoutParams adsParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, 
       FrameLayout.LayoutParams.WRAP_CONTENT); 

     layout.addView(adView, 0, adsParams); 

     layout.addView(renderView, 1, gameParams); 
     setContentView(layout); 


     AdRequest adRequest = new AdRequest(); 
     adRequest.addTestDevice(AdRequest.TEST_EMULATOR); 
     adView.loadAd(adRequest); 

當我這樣做時,整個屏幕充滿了AndroidFastRenderView。 但是,當我不添加AndroidFastRenderView廣告出現。 所以我認爲問題在於,也許AndroidFastRenderView被繪製在我的廣告上方(也許我在framebuffer的大小上做了錯誤),或者AndroidFastRenderView「竊取」了廣告空間。

我希望你明白我的問題是什麼,並且有人能幫助我解決我的問題

你,盧卡斯

回答

0

你使用RelativeLayout的,而不是試圖FrameLayout裏?

final int adId = 0x12345; 
adView.setId(adId); 
RelativeLayout layout = new RelativeLayout(this); 

RelativeLayout.LayoutParams adParams = 
    new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
            RelativeLayout.LayoutParams.WRAP_CONTENT); 
adParams.addRule(RelativeLayout.ALIGN_PARENT_TOP); 
RelativeLayout.LayoutParams gameParams = 
    new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, 
            RelativeLayout.LayoutParams.WRAP_CONTENT); 
gameParams.addRule(RelativeLayout.BELOW, adId); 
layout.addView(adView, adParams); 
layout.addView(renderView, gameParams); 
setContentView(layout); 
+0

我dont't沒有爲什麼,但它的工作原理:) 非常感謝你,這個問題已經損失了一些時間,並會更多的花費我沒有你的幫助,謝謝! – user1558153 2012-07-27 22:57:56