Cocos2d-x3.3RC0实现有米广告平台接入
来源:互联网 发布:淘宝买家怎么提高心级 编辑:程序博客网 时间:2024/04/30 00:04
有米广告平台介绍:有米SDK
关于有米的一些信息设置,官网表述的已经非常清楚,此处不再赘述,本教程是针对Android机器。
直接上代码
1】C++部分
本教程基于Cocos2d-x的HelloWorld空程序,所以代码非常简单,不需修改C++部分代码
2】Java代码
1、AppActivity.java
/****************************************************************************Copyright (c) 2008-2010 Ricardo QuesadaCopyright (c) 2010-2012 cocos2d-x.orgCopyright (c) 2011 Zynga Inc.Copyright (c) 2013-2014 Chukong Technologies Inc. http://www.cocos2d-x.orgPermission is hereby granted, free of charge, to any person obtaining a copyof this software and associated documentation files (the "Software"), to dealin the Software without restriction, including without limitation the rightsto use, copy, modify, merge, publish, distribute, sublicense, and/or sellcopies of the Software, and to permit persons to whom the Software isfurnished to do so, subject to the following conditions:The above copyright notice and this permission notice shall be included inall copies or substantial portions of the Software.THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS ORIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THEAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHERLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS INTHE SOFTWARE.****************************************************************************/package org.cocos2dx.cpp;import net.youmi.android.AdManager;import net.youmi.android.banner.AdSize;import net.youmi.android.banner.AdView;import net.youmi.android.banner.AdViewListener;import net.youmi.android.spot.SpotDialogListener;import net.youmi.android.spot.SpotManager;import org.cocos2dx.lib.Cocos2dxActivity;import org.cocos2dx.lib.Cocos2dxEditText;import org.cocos2dx.lib.Cocos2dxGLSurfaceView;import org.cocos2dx.lib.Cocos2dxRenderer;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.util.Log;import android.view.Gravity;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.view.ViewGroup.LayoutParams;import android.widget.Button;import android.widget.FrameLayout;import android.widget.LinearLayout;import com.yxk.youmi.R;public class AppActivity extends Cocos2dxActivity {//SpotManager.getInstance(sActivity).showSpotAds(sActivity);private Cocos2dxGLSurfaceView mGLView;//addprivate static Context mContext;//addprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);mContext = this; //addLayoutParams frameLayout_paras = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,ViewGroup.LayoutParams.FILL_PARENT);FrameLayout frameLayout = new FrameLayout(this);frameLayout.setLayoutParams(frameLayout_paras);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);frameLayout.addView(editText);mGLView = new Cocos2dxGLSurfaceView(this);frameLayout.addView(mGLView);mGLView.setEGLContextClientVersion(2);mGLView.setCocos2dxRenderer(new Cocos2dxRenderer());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.BOTTOM | Gravity.CENTER_HORIZONTAL;//这里确定广告的位置 this.addContentView(adMiniLayout, lp_mini); LinearLayout miniLayout = new LinearLayout(this); miniLayout.setGravity(Gravity.CENTER_HORIZONTAL); adMiniLayout.addView(miniLayout); AdManager.getInstance(this).init("937f81391fe278d0", "11f447b520039ceb", false);AdView adView = new AdView(this, AdSize.FIT_SCREEN);miniLayout.addView(adView);// 监听广告条接口adView.setAdListener(new AdViewListener() {@Overridepublic void onSwitchedAd(AdView arg0) {Log.i("YoumiAdDemo", "广告条切换");}@Overridepublic void onReceivedAd(AdView arg0) {Log.i("YoumiAdDemo", "请求广告成功");}@Overridepublic void onFailedToReceivedAd(AdView arg0) {Log.i("YoumiAdDemo", "请求广告失败");}});SpotManager.getInstance(this).loadSpotAds();SpotManager.getInstance(this).setShowInterval(20);// 设置20秒的显示时间间隔SpotManager.getInstance(this).setSpotOrientation(SpotManager.ORIENTATION_PORTRAIT);}/*Button spotBtn = (Button) findViewById(R.id.showSpot);spotBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 展示插播广告,可以不调用loadSpot独立使用SpotManager.getInstance(AppActivity.this).showSpotAds(AppActivity.this, new SpotDialogListener() {@Overridepublic void onShowSuccess() {Log.i("YoumiAdDemo", "展示成功");}@Overridepublic void onShowFailed() {Log.i("YoumiAdDemo", "展示失败");}@Overridepublic void onSpotClosed() {Log.e("YoumiAdDemo", "插屏关闭");}}); // //// 可以根据需要设置Theme,如下调用,如果无特殊需求,直接调用上方的接口即可// SpotManager.getInstance(YoumiAdDemo.this).showSpotAds(YoumiAdDemo.this,// android.R.style.Theme_Translucent_NoTitleBar);// //}});Button diyBtn = (Button) findViewById(R.id.diy);diyBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent();intent.setClass(AppActivity.this, DiyDemo.class);startActivity(intent);}});}*///setContentView(R.layout.main);//del/*AdManager.getInstance(this).init("937f81391fe278d0", "11f447b520039ceb", false);FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.FILL_PARENT,FrameLayout.LayoutParams.WRAP_CONTENT);// 设置广告条的悬浮位置layoutParams.gravity = Gravity.BOTTOM | Gravity.RIGHT; // 这里示例为右下角// 实例化广告条AdView adView = new AdView(this, AdSize.FIT_SCREEN);// 调用Activity的addContentView函数this.addContentView(adView, layoutParams);// 监听广告条接口adView.setAdListener(new AdViewListener() {@Overridepublic void onSwitchedAd(AdView arg0) {Log.i("YoumiAdDemo", "广告条切换");}@Overridepublic void onReceivedAd(AdView arg0) {Log.i("YoumiAdDemo", "请求广告成功");}@Overridepublic void onFailedToReceivedAd(AdView arg0) {Log.i("YoumiAdDemo", "请求广告失败");}});SpotManager.getInstance(this).loadSpotAds();SpotManager.getInstance(this).setShowInterval(20);// 设置20秒的显示时间间隔SpotManager.getInstance(this).setSpotOrientation(SpotManager.ORIENTATION_PORTRAIT);Button spotBtn = (Button) findViewById(R.id.showSpot);spotBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {// 展示插播广告,可以不调用loadSpot独立使用SpotManager.getInstance(AppActivity.this).showSpotAds(AppActivity.this, new SpotDialogListener() {@Overridepublic void onShowSuccess() {Log.i("YoumiAdDemo", "展示成功");}@Overridepublic void onShowFailed() {Log.i("YoumiAdDemo", "展示失败");}@Overridepublic void onSpotClosed() {Log.e("YoumiAdDemo", "插屏关闭");}}); // //// 可以根据需要设置Theme,如下调用,如果无特殊需求,直接调用上方的接口即可// SpotManager.getInstance(YoumiAdDemo.this).showSpotAds(YoumiAdDemo.this,// android.R.style.Theme_Translucent_NoTitleBar);// //}});Button diyBtn = (Button) findViewById(R.id.diy);diyBtn.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View view) {Intent intent = new Intent();intent.setClass(AppActivity.this, DiyDemo.class);startActivity(intent);}});}*/@Overridepublic void onBackPressed() {// 如果有需要,可以点击后退关闭插播广告。if (!SpotManager.getInstance(AppActivity.this).disMiss(true)) {super.onBackPressed();}}@Overrideprotected void onStop() {// 如果不调用此方法,则按home键的时候会出现图标无法显示的情况。SpotManager.getInstance(AppActivity.this).disMiss(false);super.onStop();}@Overrideprotected void onDestroy() {SpotManager.getInstance(this).unregisterSceenReceiver();super.onDestroy();}}
2、DiyDemo.java
package org.cocos2dx.cpp;import java.util.List;import com.yxk.youmi.R;import net.youmi.android.diy.AdObject;import net.youmi.android.diy.DiyManager;import net.youmi.android.diy.banner.DiyAdSize;import net.youmi.android.diy.banner.DiyBanner;import android.app.Activity;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.RelativeLayout; public class DiyDemo extends Activity{private Button showRecommendWallBtn, showRecommendAppWallBtn, showRecommendGameWallBtn; private List<AdObject> adList; public void onCreate(Bundle bundle){ super.onCreate(bundle); setContentView(R.layout.activity_diydemo); //普通布局,适用于应用 //获取要嵌入迷你广告条的布局 RelativeLayout adLayout=(RelativeLayout)findViewById(R.id.adLayout); //demo 1 迷你Banner : 宽满屏,高32dp DiyBanner banner = new DiyBanner(this, DiyAdSize.SIZE_MATCH_SCREENx32);//传入高度为32dp的AdSize来定义迷你Banner //demo 2 迷你Banner : 宽320dp,高32dp //DiyBanner banner = new DiyBanner(this, DiyAdSize.SIZE_320x32);//传入高度为32dp的AdSize来定义迷你Banner //将积分Banner加入到布局中 adLayout.addView(banner); //悬浮布局,适用于游戏 /* //实例化LayoutParams(重要) FrameLayout.LayoutParams layoutParams = new FrameLayout.LayoutParams( FrameLayout.LayoutParams.FILL_PARENT, FrameLayout.LayoutParams.WRAP_CONTENT); //设置迷你Banner的悬浮位置 layoutParams.gravity = Gravity.BOTTOM | Gravity.RIGHT; // 这里示例为右下角 //实例化迷你Banner DiyBanner banner = new DiyBanner(this, DiyAdSize.SIZE_MATCH_SCREENx32);//传入高度为32dp的DiyAdSize来定义迷你Banner //调用Activity的addContentView函数 this.addContentView(banner, layoutParams); */ showRecommendWallBtn = (Button) findViewById(R.id.showRecommendWall); showRecommendWallBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 展示所有应用推荐墙 DiyManager.showRecommendWall(DiyDemo.this); } }); showRecommendAppWallBtn = (Button) findViewById(R.id.showRecommendAppWall); showRecommendAppWallBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 展示应用推荐墙 DiyManager.showRecommendAppWall(DiyDemo.this); } }); showRecommendGameWallBtn = (Button) findViewById(R.id.showRecommendGameWall); showRecommendGameWallBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { // 展示游戏推荐墙 DiyManager.showRecommendGameWall(DiyDemo.this); } });}}
3、AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.yxk.youmi" android:versionCode="1" android:versionName="1.0" android:installLocation="auto"> <uses-sdk android:minSdkVersion="11"/> <uses-feature android:glEsVersion="0x00020000" /> <application android:label="@string/app_name" android:icon="@drawable/icon"> <!-- Tell Cocos2dxActivity the name of our .so --> <meta-data android:name="android.app.lib_name" android:value="cocos2dcpp" /> <activity android:name="org.cocos2dx.cpp.AppActivity" android:label="@string/app_name" android:screenOrientation="portrait" android:theme="@android:style/Theme.NoTitleBar.Fullscreen" android:configChanges="keyboard|keyboardHidden|orientation|screenSize"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <activity android:name="net.youmi.android.AdBrowser" android:configChanges="keyboard|keyboardHidden|orientation|screenSize" android:theme="@android:style/Theme.Light.NoTitleBar" > </activity> <service android:name="net.youmi.android.AdService" android:exported="false" > </service> <receiver android:name="net.youmi.android.AdReceiver" > <intent-filter> <action android:name="android.intent.action.PACKAGE_ADDED" /> <data android:scheme="package" /> </intent-filter> </receiver> <provider android:name="net.youmi.android.spot.SpotAdContentProvider" android:authorities="com.youandroidmi" /> <activity android:name="org.cocos2dx.cpp.DiyDemo" android:configChanges="keyboard|keyboardHidden|navigation|orientation|screenSize" > </activity> <meta-data android:name="YOUMI_CHANNEL" android:value="0" > </meta-data> </application> <supports-screens android:anyDensity="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true" android:xlargeScreens="true"/> <uses-permission android:name="android.permission.INTERNET"/><uses-permission android:name="android.permission.READ_PHONE_STATE" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /><uses-permission android:name="android.permission.ACCESS_WIFI_STATE" /><uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /><uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /><uses-permission android:name="android.permission.GET_TASKS" /><uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT" /><uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /></manifest>运行效果
0 0
- Cocos2d-x3.3RC0实现有米广告平台接入
- Cocos2d-x3.3RC0之LightTest分析
- Cocos2d-x3.3RC0通过JNI实现Java与C++互调
- Cocos2d-x3.3RC0通过JNI调用Android的Java层代码,实现分享功能
- Cocos2d-x3.3RC0通过JNI实现Java与C++互调
- Cocos2d-x3.3RC0加载Android的WebView
- Cocos2d-x3.3RC0 tests-cpp分析之BillBoardTest
- Cocos2d-x3.3RC0 Cpp-test分析之NewAudioEngineDemo
- (11) Cocos2d-x3.3RC0之LightTest分析
- Cocos2d-x3.3RC0 Cpp-test分析之Camera3DDemo
- Cocos2d-x3.3RC0 Cpp-test分析之ActionManagerTest
- Cocos2d-x3.3RC0的多线程与异步加载
- Cocos2d-x3.3RC0 Cpp-test分析之Camera3DDemo
- Cocos2d-x3.1中使用万普平台实现Android平台广告添加
- Cocos2d-x3.1中使用万普平台实现Android平台广告添加
- 使用cocos2d js接入有米广告-ios版本
- cocos2d js接入有米广告-ios版本
- android 有米广告接入
- Keystone, Openstack之魂
- HADOOP HA
- 【1】糖醋排骨
- C++标准程序库细节整理(二)第五章
- 【软件工程】第三、四章总结
- Cocos2d-x3.3RC0实现有米广告平台接入
- 算法导论学习记录之第一章
- 修复损坏的 ext4 大分区数据
- Configuring Floating IP addresses for Networking in OpenStack Public and Private Clouds
- 卡尔曼滤波
- display不能解决<jsp:include />的问题,jsp异步加载另外一个jsp页面
- UML类图几种关系的总结
- 程序员都需要学习什么
- 第十六周 百位数分解