前言:
这一节主要讲解如何添加第三方sdk;主要通过以前的2048项目,另外cocos2dx-android.jar源代码也开源出去,想具体了解cocos引擎和android是如何交互的 可以研究cocos2dx-android代码,也存放在下面链接里面;
代码下载
https://github.com/makeapp/cocoseditor-2048 (名称对应各平台sdk 比如2048-android-baidu, 2048-android-360等)
图片快照
分析
1 请使用项目里面最新的cocos2dx-android.jar库 如果你要在其他项目中添加sdk 也需要覆盖新的cocos2dx-android库
2 添加sdk基本类似,首先整个activity是在framelayer上,opengl游戏也放置在framelayer上,我们添加的sdk只要新建一个relativelayer,放置在里面就可以了;
以百度sdk为例子,覆盖init函数,frameLayer层加了一个sdkLayer,在sdkLayer里面嵌入bannerlayer就行,因为封装好了cocos2dx-android.jar 一切就好办多了
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Override public FrameLayout init() { FrameLayout frameLayout = super.init(); RelativeLayout sdkLayer = new RelativeLayout(this); frameLayout.addView(sdkLayer); // RelativeLayout rlMain = new RelativeLayout(this); // rlMain.setHorizontalGravity(Gravity.TOP|Gravity.CENTER_HORIZONTAL); // // 创建广告View // AdView.setAppSid(this, "b1067edd"); // AdView.setAppSec(this, "b1067edd"); // AdView adView = new AdView(this); // rlMain.addView(adView); // frameLayout.addView(rlMain); // return frameLayout; //banner RelativeLayout bannerLayer = new RelativeLayout(this); RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, 150); params.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM); bannerLayer.setLayoutParams(params); bannerLayer.setGravity(Gravity.CENTER); sdkLayer.addView(bannerLayer); // 创建广告View AdView.setAppSid(this, "1003b991"); //b1067edd AdView.setAppSec(this, "1003b991"); //b1067edd AdView adView = new AdView(this); bannerLayer.addView(adView); //interstitial //appWall // actionFromCocos2djs(frameLayout); return frameLayout; }