2013-07-15 52 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