2013-07-15 95 views
1

的Mopub集成說明建議用這樣的片段在XML中創建廣告視圖整合Mopub廣告到Cocos2dx 2.1

moPubView = (MoPubView)findViewById(R.id.adview); 
moPubView.setAdUnitId("123412341234"); 
moPubView.loadAd(); 

不幸的是moPubView未被創建,因爲Cocos2dx 2.1不再使用XML進行佈局。因此,由於空指針異常,應用程序在啓動時崩潰。

在嘗試創建廣告視圖之前,我嘗試通過R.layout.mainsetContentView。這確實成功創建了廣告視圖,但其他應用程序不可見。

如何在不使用XML的情況下以編程方式創建類似上面的視圖?

我認爲這解決了空指針異常問題,而無需致電setContentView

回答

3
private static BannerAdManager m_adDelegate = null; 
private static FrameLayout.LayoutParams m_bannerParam = null; 
private static FrameLayout m_appLayout = null; 


public static void initialize(Activity p_activity) 
{ 
    // create instance of delegate 
    if(m_adDelegate == null) 
    { 
     m_adDelegate = new BannerAdManager(); 
    } 

    m_activity = p_activity; 


    //~~~setup mopub banner ad 
    //~~~create mopub ad view 
    m_mopubView = new MoPubView(m_activity); 

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

    m_mopubView.setAdUnitId(Config_Android._ID); 
    m_mopubView.setBannerAdListener(m_adDelegate); 
    m_mopubView.loadAd(); 

    //get current layout 
    m_appLayout = (FrameLayout) m_activity.findViewById(android.R.id.content); 

    // set default alignment 
    m_bannerParam.gravity = Gravity.TOP | Gravity.CENTER; 

    //add mopub view to layout 
    m_appLayout.addView(m_mopubView, m_bannerParam); 

} 

    public static void setBannerPositionTopWithPadding(float p_padding) 
    { 
     getActivity().runOnUiThread(new Runnable() 
     { 
      public void run() 
      { 
       activity = getActivity(); 

       m_bannerParam.gravity = Gravity.TOP | Gravity.CENTER; 
       m_bannerParam.width = FrameLayout.LayoutParams.WRAP_CONTENT; 
       m_bannerParam.height = FrameLayout.LayoutParams.WRAP_CONTENT; 

       m_bannerParam.topMargin = (int) p_padding; 

       m_appLayout.updateViewLayout(m_mopubView, m_bannerParam); 
       m_mopubView.refreshDrawableState(); 

      } 
     }); 
    } 
+0

對不起:)我是一個相對新手在Android和我不明白在上面的代碼中的一件事..任何人請解釋什麼ChaCha意思?我試圖在一個小應用程序中做同樣的事情。 – DroidHeaven

+0

在最新的MoPub SDK中,沒有什麼像BannerAdManager!或者我在做什麼? – DroidHeaven