2013-07-15 4 views
1

MoPub에서 통합 지침이 같은 조각과 XML의 광고 뷰를 작성하는 것이 좋습니다통합 MoPub에서 광고는 2.1

을 Cocos2dx 2.1은 더 이상 레이아웃 XML을 사용하지 않기 때문에 불행하게도 moPubView
moPubView = (MoPubView)findViewById(R.id.adview); 
moPubView.setAdUnitId("123412341234"); 
moPubView.loadAd(); 

은 만들어지지 않습니다. 그래서 응용 프로그램은 null 포인터 예외로 인해 출시 충돌합니다.

광고보기를 만들기 전에 을 setContentView으로 전달하려고 시도했습니다. 광고보기가 성공적으로 생성되지만 나머지 앱은 표시되지 않습니다.

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

나는 안드로이드에서 상대적으로 초보자이며 위의 코드에서 하나의 것을 이해하지 못했습니다. 아무도 ChaCha의 의미를 설명해 줄 수 있습니까? 나는 작은 응용 프로그램에서 동일한 작업을 수행하려고합니다. – DroidHeaven

+0

최신 MoPub SDK에는 BannerAdManager와 같은 것이 없습니다! 또는 나는 뭔가를 낳고 있는가? – DroidHeaven

관련 문제