cocos2dx 3.x Android环境下添加广告
2014-09-28 22:11
465 查看
最近两天想研究下怎么在cocos2dx的程序中加入广告,在网上看了下这类的文章说的都不是太仔细,所以特地写下这篇博客与需要的同学分享。 我使用的是cocos2dx3.2,广告平台用的是万普,网上看了下这个平台口碑还算不错,其它平台的暂时还没有试,有空再研究一下吧。
一、注册、下载SDK
地址: http://www.waps.cn/?f=HouDelong,注册后选择For Cocos2dx这一项下载下来,解压后会看到libs,demo和一个开发者手册。
二、创建应用
1.给应用起个名字,选择平台,这里是Android然后直接下一步啦.
2.然后它会给我们一个APP_ID,记住这个ID,我们程序中要用到,然后应用详情先不管,我们就先做个简单的例子感受一下。
三、添加迷你广告
大家先创建一个空的工程,然后把android工程导入到Eclipse(这个不难吧。)。然后我们把WapsOffer_ForCocos2dx_1.1的libs目录下的AppOffer_2.1.1.jar复制到我们Andorid工程下的libs目录下。还需要把cocos2d\cocos\platform\android\java目录下的库复制到src目录下。
然后回到eclipse,在scr下找到AppActivity.java,我们的代码主要添加到这里。在这之前,需要先修改下AndroidManifest.xml,按照参考文档里面说的来就可以了。
参考demo中AppActivity.java的代码,我们精简一下,只添加一个迷你广告。
OK,如果上面的步骤没问题的话,会看到下面的结果
四、其它
上面说的是迷你广告,运行程序的时候自己就出现了,但是我们在应用中经常需要根据某个按钮事件来添加按钮,比如说退出屏幕的时候弹出一个退屏广告。这就需要用到JNI技术了,不明白的同学可以找资料研究一下,这里先不必深究这些了。demo里面有两个文件WapsAd.cpp和WaspsAd.h,这两个文件实现了JNI的调用,我们可以直接拿来用。把这两个文件放到我们的工程,然后参考demo的程序应该很容易可以实现各种广告了,大家琢磨一下吧,代码就不贴了,有问题可以交流。
一、注册、下载SDK
地址: http://www.waps.cn/?f=HouDelong,注册后选择For Cocos2dx这一项下载下来,解压后会看到libs,demo和一个开发者手册。
二、创建应用
1.给应用起个名字,选择平台,这里是Android然后直接下一步啦.
2.然后它会给我们一个APP_ID,记住这个ID,我们程序中要用到,然后应用详情先不管,我们就先做个简单的例子感受一下。
三、添加迷你广告
大家先创建一个空的工程,然后把android工程导入到Eclipse(这个不难吧。)。然后我们把WapsOffer_ForCocos2dx_1.1的libs目录下的AppOffer_2.1.1.jar复制到我们Andorid工程下的libs目录下。还需要把cocos2d\cocos\platform\android\java目录下的库复制到src目录下。
然后回到eclipse,在scr下找到AppActivity.java,我们的代码主要添加到这里。在这之前,需要先修改下AndroidManifest.xml,按照参考文档里面说的来就可以了。
参考demo中AppActivity.java的代码,我们精简一下,只添加一个迷你广告。
package org.cocos2dx.cpp; import org.cocos2dx.lib.Cocos2dxActivity; import org.cocos2dx.lib.Cocos2dxEditText; import org.cocos2dx.lib.Cocos2dxGLSurfaceView; import org.cocos2dx.lib.Cocos2dxRenderer; import android.app.ActivityManager; import android.content.Context; import android.content.pm.ConfigurationInfo; import android.os.Bundle; import android.util.Log; import android.view.Gravity; import android.view.ViewGroup; import android.widget.FrameLayout; import android.widget.LinearLayout; import cn.waps.AppConnect; public class AppActivity extends Cocos2dxActivity { private Cocos2dxGLSurfaceView mGLView; private static Context mContext; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); mContext = this; if (detectOpenGLES20()) { // 第一个参数就是应用的id,第二个参数是渠道标识,参考手册里面有渠道标识的对照表 AppConnect.getInstance("7bca0bb25fdb0c0c0640feba849ace2b", "default", this); // FrameLayout ViewGroup.LayoutParams framelayout_params = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.FILL_PARENT); FrameLayout framelayout = new FrameLayout(this); framelayout.setLayoutParams(framelayout_params); // Cocos2dxEditText layout ViewGroup.LayoutParams edittext_layout_params = new ViewGroup.LayoutParams( ViewGroup.LayoutParams.FILL_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT); Cocos2dxEditText edittext = new Cocos2dxEditText(this); edittext.setLayoutParams(edittext_layout_params); // ...add to FrameLayout framelayout.addView(edittext); // Cocos2dxGLSurfaceView mGLView = new Cocos2dxGLSurfaceView(this); // ...add to FrameLayout framelayout.addView(mGLView); mGLView.setEGLContextClientVersion(2); mGLView.setCocos2dxRenderer(new Cocos2dxRenderer()); // mGLView.setTextField(edittext); // Set framelayout as the content view setContentView(framelayout); //迷你广告 LinearLayout adMiniLayout = new LinearLayout(this); adMiniLayout.setOrientation(LinearLayout.VERTICAL); FrameLayout.LayoutParams lp_mini = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); //设置adMiniLayout的悬浮位置,具体的位置开发者根据需要设置 lp_mini.gravity = Gravity.TOP | Gravity.CENTER_HORIZONTAL; this.addContentView(adMiniLayout, lp_mini); LinearLayout miniLayout = new LinearLayout(this); miniLayout.setGravity(Gravity.CENTER_HORIZONTAL); adMiniLayout.addView(miniLayout); // 添加迷你广告 AppConnect.getInstance(this).showMiniAd(this, miniLayout, 10); } else { Log.d("activity", "don't support gles2.0"); finish(); } } private boolean detectOpenGLES20() { ActivityManager am = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); ConfigurationInfo info = am.getDeviceConfigurationInfo(); return (info.reqGlEsVersion >= 0x20000); } static { System.loadLibrary("cocos2dcpp"); } }
OK,如果上面的步骤没问题的话,会看到下面的结果
四、其它
上面说的是迷你广告,运行程序的时候自己就出现了,但是我们在应用中经常需要根据某个按钮事件来添加按钮,比如说退出屏幕的时候弹出一个退屏广告。这就需要用到JNI技术了,不明白的同学可以找资料研究一下,这里先不必深究这些了。demo里面有两个文件WapsAd.cpp和WaspsAd.h,这两个文件实现了JNI的调用,我们可以直接拿来用。把这两个文件放到我们的工程,然后参考demo的程序应该很容易可以实现各种广告了,大家琢磨一下吧,代码就不贴了,有问题可以交流。
相关文章推荐
- cocos2d-x 3.X 在android 中添加多盟插屏广告
- cocos2d-x 3.X 如何在android里添加广告
- cocos2d-x 3.X 如何在android里添加广告
- Cocos2d-x 3.X, Android Studio版添加广点通广告平台
- cocos2dx android添加广点通广告平台的---插屏广告
- cocos2d-x 3.X 如何在android里添加广告
- win8平台下搭建cocos2dx 3.x+android开发环境
- cocos2d-x 3.X 如何在android里添加广告
- cocos2dx3.0 添加第三方库,VS编译环境和Android编译环境添加方法
- cocos2d-x 3.X 如何在android里添加广告
- cocos2dx + android 如何添加百度插屏广告
- cocos2dx 3.x系列之Mac环境编译Android apk须知
- Cocos2dx 3.X 环境搭建和Android打包apk
- cocos2d-x 3.X 在android 中添加多盟插屏广告
- cocos2d-x 3.X 如何在android里添加广告
- cocos2d-x 3.X 如何在android里添加广告
- cocos2dx 3.x android开发环境+HelloWorld
- Cocos2d-x 3.X, Android Studio版添加多盟广告平台
- cocos2dx + android 如何添加百度插屏广告
- Android-往自己的应用添加广告 赚钱第一步