2011年1月17日月曜日

【Android】AdMobが表示されない場合にAdMakerを表示するクラス

前に使ったクラスを晒します。

  1. package jp.dd0125.common;  
  2.   
  3. import jp.co.nobot.libYieldMaker.libYieldMaker;  
  4. import android.app.Activity;  
  5. import android.util.Log;  
  6. import android.view.ViewGroup.LayoutParams;  
  7. import android.widget.LinearLayout;  
  8. import android.widget.ProgressBar;  
  9. import android.widget.RelativeLayout;  
  10.   
  11. import com.admob.android.ads.AdListener;  
  12. import com.admob.android.ads.AdView;  
  13.   
  14. public class CommonAdMob_AdMaker {  
  15.  private static final String TAG = "CommonAdvertisement";  
  16.   
  17.  ProgressBar pb;  
  18.  AdView adView;  
  19.  libYieldMaker adMaker;  
  20.  Activity act;  
  21.  public CommonAdMob_AdMaker(Activity act){  
  22.   this.act = act;  
  23.   
  24.   pb = new ProgressBar(act);  
  25.   pb.setVisibility(ProgressBar.VISIBLE);  
  26.   
  27.   
  28.   //pb.setGravity(android.view.Gravity.RIGHT);  
  29.   pb.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));  
  30.   
  31.  }  
  32.   
  33.   
  34.   
  35.   
  36.  public void createAdMob(int align){  
  37.         adView = new AdView(act);  
  38.         adView.setVisibility(android.view.View.VISIBLE);  
  39.         adView.requestFreshAd();  
  40.   
  41.         adView.setGravity(align);  
  42.         adView.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));  
  43.   
  44.   
  45.         adView.setAdListener(new AdListener() {  
  46.   
  47.             public void onReceiveRefreshedAd(AdView adView) {  
  48.                 Log.d(TAG, "AdListener.onReceiveRefreshedAd called!");  
  49.             }  
  50.   
  51.             public void onReceiveAd(AdView adView) {  
  52.                 Log.d(TAG, "AdListener.onReceiveAd called!");  
  53.                 // 広告が表示できたのでProgressBarを消す  
  54.                 pb.setVisibility(ProgressBar.GONE);  
  55.             }  
  56.   
  57.             public void onFailedToReceiveRefreshedAd(AdView adView) {  
  58.                 Log.d(TAG, "AdListener.onFailedToReceiveRefreshedAd called!");  
  59.             }  
  60.   
  61.             public void onFailedToReceiveAd(AdView adView) {  
  62.                 Log.d(TAG, "AdListener.onFailedToReceiveAd called!");  
  63.                 // プログレスバーを消す  
  64.                 pb.setVisibility(ProgressBar.GONE);  
  65.   
  66.   
  67.                 // AdMaker の広告を設定している場合、AdMakerの広告を表示するのでAdViewの更新を行わせない  
  68.                 if(adMaker != null){  
  69.                     adView.setRequestInterval(0);  
  70.                     adView.setVisibility(AdView.GONE);  
  71.   
  72.                     // AdMakerの広告を表示させる  
  73.                     adMaker.setVisibility(libYieldMaker.VISIBLE);  
  74.                     adMaker.startView();  
  75.   
  76.                 }  
  77.             }  
  78.         });  
  79.  }  
  80.   
  81.  public void createAdMaker(String url){  
  82.   adMaker = new libYieldMaker(act);  
  83.         adMaker.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));  
  84.   
  85.         adMaker.setActivity(act);  
  86.         adMaker.setUrl(url);  
  87.   
  88.  }  
  89.  public RelativeLayout getAdMob_AdMaker(){  
  90.   RelativeLayout layout = new RelativeLayout(act);  
  91.   layout.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));  
  92.   
  93.   layout.setGravity(android.view.Gravity.CENTER);  
  94.   layout.addView(pb);  
  95.   if(adView != null){  
  96.    layout.addView(adView);  
  97.   }  
  98.   if(adMaker != null){  
  99.    layout.addView(adMaker);  
  100.    if(adView == null) {  
  101.     pb.setVisibility(ProgressBar.GONE);  
  102.     adMaker.setVisibility(libYieldMaker.VISIBLE);  
  103.     adMaker.startView();  
  104.    }  
  105.   }  
  106.   return layout;  
  107.  }  
  108. }  

このように使います。

  1. // 広告  
  2.  //AdManager.setTestDevices( new String[] {  
  3.  //  AdManager.TEST_EMULATOR,  
  4.  //  //"XXXXXXXXXXXXXXXXXXXX",  
  5.  //  });  
  6.  LinearLayout l_ad = (LinearLayout)findViewById(レイアウトID);  
  7.  CommonAdMob_AdMaker Ad;  
  8.  Ad = new CommonAdMob_AdMaker(this);  
  9.  Ad.createAdMob(RelativeLayout.ALIGN_TOP); // AdMobを生成  
  10.  Ad.createAdMaker("http://stg-images.ad-maker.info/sample-test.html"); // AdMakerを生成  
  11.   
  12.  l_ad.addView(Ad.getAdMob_AdMaker()); // 広告を持ったレイアウトが返ってきますので addViewします  

ただし、
・res/values/attr.xml
・AdMob と AdMaker の jarライブラリ組み込み
は必要です。

0 件のコメント:

コメントを投稿