がおまる開発ブログ

cocos2d-xやlevelhelperを使って iPhone/Androidアプリの作り方を解説します

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

cocos2d-xにAdWhirlを導入する (Android編)

途中のadwhirl管理サイトにアプリを登録して、カスタムイベント登録する部分までは、
前回のiOS編を参考にしてください。

こちらからAndroid用のSDKをダウンロードしてください。

AdWhirlを組み込む

ダウンロードしてきたjarファイルをproj.android→libsフォルダへコピーしましょう。
2013050101.png

他社SDKをダウンロード

今回はnendSDK-2.0.0とi-mobileSDK_1.4.0での説明です。
同じようにダウンロードしてきたjarファイルをlibsフォルダへコピーしましょう

2013050102.png

2013050103.png

ビルドパスを通してください。
2013050104.png

これで準備はOKです。

マニフェストファイルの編集

2013050106.png


<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.marnishi.Principal"
android:installLocation="preferExternal"
android:versionCode="3"
android:versionName="1.1.0">

<uses-sdk android:minSdkVersion="8"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

<application android:label="@string/app_name"
android:debuggable="false"
android:icon="@drawable/icon">

<activity android:name=".Principal"
android:label="@string/app_name"
android:screenOrientation="portrait"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
android:configChanges="orientation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

<activity android:name="com.google.ads.AdActivity"
android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"/>

<meta-data android:name="i-mobile_Publisher_ID" android:value="i-mobileのID" />
</application>
<supports-screens android:largeScreens="true"
android:smallScreens="true"
android:anyDensity="true"
android:normalScreens="true"/>
</manifest>

ネットワークのパーミッションとi-mobile用のIDの設定とadwhirl用の設定を記述します

ソースを編集する

新規classを作成してください。
僕の場合はAds.javaというのを作成しました。
2013050105.png


package com.marnishi.Principal;


import jp.co.imobile.android.AdRequestResult;
import jp.co.imobile.android.AdView;
import jp.co.imobile.android.AdViewRequestListener;
import net.nend.android.NendAdView;
import android.app.Activity;
import android.widget.LinearLayout;

import com.adwhirl.AdWhirlLayout;
import com.adwhirl.AdWhirlLayout.AdWhirlInterface;

public class Ads implements AdWhirlInterface{
private Activity mActivity;
private LinearLayout mLayout;

private AdWhirlLayout adWhirlLayout;
private jp.co.imobile.android.AdView imobileAd;
private NendAdView nendAd;

// nend用
private final int nendSpot_id = xxxxxx;
private final String nendApiKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
// i-mobile用
private final int iMobileMediaID = xxxxx;
private final int iMobileSpotID = xxxxx;
// adwhirl用
private final String adWhirlID = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";

public Ads(Activity act, LinearLayout layout) {
mActivity = act;
mLayout = layout;
adInit();
}

/**
* 広告初期化
*/
private void adInit() {
// i-mobile初期化
imobileAd = AdView.createForAdWhirl(mActivity, iMobileMediaID, iMobileSpotID);
// adwhirl初期化(AdWhirl管理画面のSDK Key:を入力する)
adWhirlLayout = new AdWhirlLayout(mActivity, adWhirlID);
adWhirlLayout.setAdWhirlInterface(this);
mLayout.addView(adWhirlLayout);

}

/**
* カスタムイベントのnend処理
*/
public void nend() {
nendAd = null;
nendAd = new NendAdView(mActivity, nendSpot_id, nendApiKey);
nendAd.loadAd();

adWhirlLayout.adWhirlManager.resetRollover();
adWhirlLayout.removeAllViews();
adWhirlLayout.addView(nendAd);
adWhirlLayout.rotateThreadedDelayed();
}

/**
* カスタムイベントimobile処理
*/
public void imobile() {
imobileAd.setOnRequestListener(new AdViewRequestListener() {
@Override
public void onCompleted(AdRequestResult result, AdView sender) {
adWhirlLayout.adWhirlManager.resetRollover();
adWhirlLayout.removeAllViews();
adWhirlLayout.addView(sender);
adWhirlLayout.rotateThreadedDelayed();
}
@Override
public void onFailed(AdRequestResult result, AdView sender) {
adWhirlLayout.rollover();
}
});
// 広告取得開始
imobileAd.start();
}

@Override
public void adWhirlGeneric() {
// TODO 自動生成されたメソッド・スタブ

}


}


続いてCocos2dxActivity.javaを編集します。
2013050107.png


public abstract class Cocos2dxActivity extends Activity implements Cocos2dxHelperListener {
private Cocos2dxGLSurfaceView mGLSurefaceView;
private Cocos2dxHandler mHandler;
private static Cocos2dxActivity myref;

// 幅、または高さいっぱいに広げる
private final int WC = LinearLayout.LayoutParams.WRAP_CONTENT;
// ジャストのサイズにする
private final int FP = LinearLayout.LayoutParams.FILL_PARENT;
// 広告レイアウト
private LinearLayout adView;

@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

this.init();

Cocos2dxHelper.init(this, this);

}
/**
* 初期処理
*/
public void init() {
// Init handler
this.mHandler = new Cocos2dxHandler(this);

// FrameLayout
ViewGroup.LayoutParams framelayout_params =
new ViewGroup.LayoutParams(FP,FP);
FrameLayout framelayout = new FrameLayout(this);
framelayout.setLayoutParams(framelayout_params);

// Cocos2dxEditText layout
ViewGroup.LayoutParams edittext_layout_params =
new ViewGroup.LayoutParams(FP,WC);
Cocos2dxEditText edittext = new Cocos2dxEditText(this);
edittext.setLayoutParams(edittext_layout_params);

// ...add to FrameLayout
framelayout.addView(edittext);

// Cocos2dxGLSurfaceView
this.mGLSurefaceView = this.onCreateGLSurfaceView();

// ...add to FrameLayout
framelayout.addView(mGLSurefaceView);

mGLSurefaceView.setCocos2dxRenderer(new Cocos2dxRenderer());
mGLSurefaceView.setCocos2dxEditText(edittext);

RelativeLayout adMain = new RelativeLayout(this);

// 広告表示するViewの初期化
adView = new LinearLayout(this);
RelativeLayout.LayoutParams layoutParams =
new RelativeLayout.LayoutParams(FP, (int)(50 * getResources().getDisplayMetrics().density));
// 下に表示する場合は有効にしてください
// layoutParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);

// 中央に表示
adView.setGravity(Gravity.CENTER_HORIZONTAL);
adView.setLayoutParams(layoutParams);

this.runOnUiThread(new Runnable() {
@Override
public void run() {
// adwhirl初期化
new Ads(Cocos2dxActivity.this, adView);
}
});

adMain.addView(adView);
framelayout.addView(adMain);

// Set framelayout as the content view
setContentView(framelayout);
}
}



これで起動すれば、広告が表示されると思います。



スポンサーサイト

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://gaomar.blog.fc2.com/tb.php/77-9883413e
この記事にトラックバックする(FC2ブログユーザー)

FC2Ad

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。