Cocos2d-x3.3RC0实现有米广告平台接入
有米广告平台介绍:有米SDK 关于有米的一些信息设置,官网表述的已经非常清楚,此处不再赘述,本教程是针对Android机器。 直接上代码 1】C部分 本教程基于Cocos2d-x的HelloWorld空程序,所以代码非常简单,不需修改C部分代码 2】Java代码 1、AppActivity.jav
有米广告平台介绍:有米SDK
关于有米的一些信息设置,官网表述的已经非常清楚,此处不再赘述,本教程是针对Android机器。
直接上代码
1】C++部分
本教程基于Cocos2d-x的HelloWorld空程序,所以代码非常简单,不需修改C++部分代码
2】Java代码
1、AppActivity.java
/**************************************************************************** Copyright (c) 2008-2010 Ricardo Quesada Copyright (c) 2010-2012 cocos2d-x.org Copyright (c) 2011 Zynga Inc. Copyright (c) 2013-2014 Chukong Technologies Inc. http://www.cocos2d-x.org Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 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 IN THE 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;//add private static Context mContext;//add protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mContext = this; //add LayoutParams 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() { @Override public void onSwitchedAd(AdView arg0) { Log.i("YoumiAdDemo", "广告条切换"); } @Override public void onReceivedAd(AdView arg0) { Log.i("YoumiAdDemo", "请求广告成功"); } @Override public 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() { @Override public void onClick(View v) { // 展示插播广告,可以不调用loadSpot独立使用 SpotManager.getInstance(AppActivity.this).showSpotAds( AppActivity.this, new SpotDialogListener() { @Override public void onShowSuccess() { Log.i("YoumiAdDemo", "展示成功"); } @Override public void onShowFailed() { Log.i("YoumiAdDemo", "展示失败"); } @Override public 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() { @Override public 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() { @Override public void onSwitchedAd(AdView arg0) { Log.i("YoumiAdDemo", "广告条切换"); } @Override public void onReceivedAd(AdView arg0) { Log.i("YoumiAdDemo", "请求广告成功"); } @Override public 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() { @Override public void onClick(View v) { // 展示插播广告,可以不调用loadSpot独立使用 SpotManager.getInstance(AppActivity.this).showSpotAds( AppActivity.this, new SpotDialogListener() { @Override public void onShowSuccess() { Log.i("YoumiAdDemo", "展示成功"); } @Override public void onShowFailed() { Log.i("YoumiAdDemo", "展示失败"); } @Override public 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() { @Override public void onClick(View view) { Intent intent = new Intent(); intent.setClass(AppActivity.this, DiyDemo.class); startActivity(intent); } }); } */ @Override public void onBackPressed() { // 如果有需要,可以点击后退关闭插播广告。 if (!SpotManager.getInstance(AppActivity.this).disMiss(true)) { super.onBackPressed(); } } @Override protected void onStop() { // 如果不调用此方法,则按home键的时候会出现图标无法显示的情况。 SpotManager.getInstance(AppActivity.this).disMiss(false); super.onStop(); } @Override protected 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); } }); } }</adobject>
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-sdk> <uses-feature android:glesversion="0x00020000"></uses-feature> <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"></meta-data> <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"></action> <category android:name="android.intent.category.LAUNCHER"></category> </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"></action> <data android:scheme="package"></data> </intent-filter> </receiver> <provider android:name="net.youmi.android.spot.SpotAdContentProvider" android:authorities="com.youandroidmi"></provider> <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"></supports-screens> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"></uses-permission> <uses-permission android:name="android.permission.GET_TASKS"></uses-permission> <uses-permission android:name="com.android.launcher.permission.INSTALL_SHORTCUT"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> </manifest>

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

360浏览器推荐的广告如何关闭?相信很多的用户们都在使用360浏览器,不过这款浏览器有时候会弹出广告,这就使得很多的用户们都十分的苦恼,下面就让本站来为用户们来仔细的介绍一下如何关闭电脑360浏览器推荐的广告吧。 如何关闭电脑360浏览器推荐的广告? 方法一: 1、打开360安全浏览器。 2、找到右上角“三横杠”标志,点击【设置】。 3、在弹出的界面左侧任务栏中找到【实验室】,勾选【启用“360热点资讯”功能】即可。 方法二: 1、首先双击

随着通信技术的进步,电话联系在我们日常生活中变得越来越普遍。然而,有时候我们可能会尝试拨打一个号码,却发现该号码已经无法接通。为了节省时间和精力,许多人开始寻找空号验证服务来确认号码的有效性。这种服务可以帮助用户快速检查一个号码是否有效,避免不必要的麻烦。一、空号检测平台有哪些?用户可以通过运营商提供的官方查询服务,拨打相应的查询号码或访问官方网站来查询号码的状态,包括是否为空号。这种服务是许多运营商提供的,方便用户快速了解号码的使用情况。在线空号检测平台现在市场上层出不穷,这些平台提供了快速便

用户在刷朋友圈的时候会遇到很多的广告,那么广告怎么彻底关掉呢?用户们需要在我的里点击设置,然后找到个人信息与权限,然后点击个性化广告管理,将广告个性化关闭就行。这篇朋友圈广告彻底关掉方法介绍就能告诉大家具体的操作方法,赶紧看看吧!微信使用教程朋友圈广告怎么彻底关掉答:无法彻底关掉,只能关掉个性化推荐具体方法:1、首先点击我,然后找到里面的设置。2、找到个人信息与权限选项。3、点击里面的个性化广告管理功能。4、点击广告个性化右侧的开关,关闭就可以了。怎么关闭广告:1、找到朋友圈里的广告。2、点击右

很多用户更新Edge浏览器之后,发现界面上多了很多的广告,比如新标签页的底部有多个网站的链接还标注广告字样,看起来非常烦人。那有什么办法可以关闭Edge浏览器个性化广告吗?小编在网上查找了很多办法,下面就分享给大家一个关闭广告的小技巧。 新版Edge如何关闭广告? 1、打开Edge浏览器。 2、点击右上角的【•••】。 3、点击【设置】。 4、点击【隐私、搜索和服务】。 5、关闭”个性化你的web体验“右侧的开关,即可关闭微软推送的个性

Optimism币在哪购买?Optimism币可以在许多加密货币交易所购买,包括:币安火币OKX抹茶Gate.ioKrakenBittrexPoloniexCoinbaseProGemini您需要在这些交易所注册一个账户,并完成身份验证,然后才能购买Optimism币。购买Optimism币的步骤如下:选择一个安全可靠的交易所。注册一个账户,并完成身份验证。为您的账户充值资金。在交易平台的交易界面上,找到Optimism币的交易对,例如OP/USDT。输入您要购买的Optimism币数量,然后点

在我们平时使用抖音进行娱乐的时候,经常会因为一些莫名奇怪的广告,打扰到我们正在休闲时的体验,让很多用户们都不受其扰,想要关闭这些广告的推荐推送,却不知道究竟该如何操作,那么本站小编就为大家带来这篇教程攻略就将为大家带来这篇详细的内容介绍,希望能帮助到各位有需要的小伙伴们。首先我们先在都有的app设置中,找到了解与管理广告推送的选项然后看到下方的所有与广告相关的开关选项,点击后方的开关进行关闭随后跳出关闭广告确认提示,我们点击确认即可关闭广告

EC币在哪购买?EC币在哪个平台交易?正文:EC币(EthereumClassic,缩写:ETC)是一种开源的、去中心化的区块链平台,也是以太坊的第一个硬分叉币种。EC币与以太坊有着相似的技术基础,但也有着一些关键的区别,例如:EC币的区块时间更短,并且不使用权益证明(PoS)共识机制。EC币可以在许多加密货币交易平台上购买,包括:中心化交易所:币安、火币、OKX、抹茶、Gate.io、Kraken、Bittrex、Poloniex等。去中心化交易所:PancakeSwap、Uniswap、Su

快手极速版一直以来都是那么受大家的喜爱,每一天都能够刷大量的视频,都是在不断地更新,让大家随时随地都能看到这些精彩的视频内容,真的丰富多样,直接的解忧烦闷的,那么大家有些时候,老是碰到一些广告弹窗的,直接的影响到了大家看视频的观感,所以大家都是想要关闭这一广告弹窗,获得更为舒适的观看体验,不知道怎么操作的朋友,可以看看小编给你们带来的教程吧。快手极速版关闭广告推送的方法: 1.首先打开快手极速版软件,来到快手页面之后点击左上角的【三横】图标; 2.然后在当前的页面点击【设置】; 3.进
