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 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











360 브라우저에서 권장하는 광고를 끄는 방법은 무엇입니까? 많은 사용자들이 360 브라우저를 사용하고 있다고 생각합니다. 그러나 이 브라우저는 때때로 광고가 표시되어 많은 사용자들을 매우 고민하게 만듭니다. 이 사이트에서는 컴퓨터에서 360 브라우저에서 권장하는 광고를 끄는 방법을 사용자에게 주의 깊게 소개하겠습니다. 컴퓨터에서 360 브라우저가 권장하는 광고를 끄는 방법은 무엇입니까? 방법 1: 1. 360 안전 브라우저를 엽니다. 2. 오른쪽 상단에 있는 "세 개의 가로 막대" 로고를 찾아 [설정]을 클릭하세요. 3. 팝업 인터페이스 왼쪽 작업 표시줄에서 [실험실]을 찾아 ["360 핫스팟 정보" 기능 활성화]를 선택합니다. 방법 2: 1. 먼저 두 번 클릭합니다.

통신기술의 발달로 우리 일상생활에서 전화를 통한 접촉이 점점 더 보편화되었습니다. 그러나 때로는 해당 번호에 더 이상 연결할 수 없는 번호로 전화를 걸 수도 있습니다. 시간과 에너지를 절약하기 위해 많은 사람들이 번호의 유효성을 확인하기 위해 빈 번호 확인 서비스를 찾기 시작합니다. 이 서비스를 통해 사용자는 번호가 유효한지 신속하게 확인하고 불필요한 문제를 피할 수 있습니다. 1. 빈 계좌 감지 플랫폼은 무엇입니까? 사용자는 운영자가 제공하는 공식 쿼리 서비스를 사용하여 해당 쿼리 번호로 전화를 걸거나 공식 웹 사이트를 방문하여 번호가 비어 있는지 여부를 포함하여 번호 상태를 쿼리할 수 있습니다. 이 서비스는 사용자가 번호의 용도를 빠르게 이해할 수 있도록 많은 사업자에 의해 제공됩니다. 온라인 빈 번호 감지 플랫폼은 이제 시장에서 끝없이 등장하고 있습니다. 이러한 플랫폼은 빠르고 편리한 서비스를 제공합니다.

사용자는 Moments를 탐색할 때 많은 광고를 보게 되는데, 광고를 완전히 끌 수 있는 방법은 무엇입니까? 사용자는 내에서 설정을 클릭한 다음 개인 정보 및 권한을 찾은 다음 개인화된 광고 관리를 클릭하고 광고 개인화를 끄면 됩니다. 이 글에서는 Moments에서 광고를 완전히 끄는 방법을 설명합니다. 한번 살펴보세요! WeChat 사용 튜토리얼: Moments에서 광고를 완전히 끄는 방법 답변: 완전히 끌 수는 없으며 개인화된 권장 사항만 있습니다. 1. 먼저 나를 클릭한 다음 내부에서 설정을 찾습니다. 2. 개인정보 및 권한 옵션을 찾아보세요. 3. 내부의 개인화된 광고 관리 기능을 클릭하세요. 4. 광고 개인 최적화 오른쪽에 있는 스위치를 클릭하고 끄세요. 광고를 끄는 방법: 1. Moments에서 광고를 찾으세요. 2. 오른쪽 클릭

Edge 브라우저를 업데이트한 후 많은 사용자들이 인터페이스에 많은 광고가 있다는 것을 발견했습니다. 예를 들어 새 탭 페이지 하단에 여러 웹 사이트에 대한 링크가 있고 광고라는 단어가 표시되어 매우 짜증나게 보였습니다. Edge 브라우저에서 개인화된 광고를 끌 수 있는 방법이 있습니까? 편집자는 인터넷에서 여러 가지 방법을 검색했으며, 광고를 끄는 작은 요령을 알려 드리겠습니다. 새 버전의 Edge에서 광고를 끄는 방법은 무엇입니까? 1. 엣지 브라우저를 엽니다. 2. 오른쪽 상단의 [•••]를 클릭하세요. 3. [설정]을 클릭하세요. 4. [개인정보, 검색 및 서비스]를 클릭하세요. 5. Microsoft에서 푸시한 개인화를 끄려면 "웹 경험 개인화" 오른쪽에 있는 스위치를 끄세요.

Optimism 코인은 어디서 구입할 수 있나요? Optimism Coin은 다음을 포함한 다양한 암호화폐 거래소에서 구매할 수 있습니다. Binance Huobi OKX Matcha Gate.io Kraken Bittrex Poloniex Coinbase Pro Gemini Optimism Coin을 구매하려면 먼저 이러한 거래소에 계정을 등록하고 신원 확인을 완료해야 합니다. Optimism 코인을 구매하는 단계는 다음과 같습니다. 안전하고 신뢰할 수 있는 거래소를 선택하세요. 계정을 등록하고 신원 확인을 완료하세요. 귀하의 계좌에 자금을 조달하십시오. 거래 플랫폼의 거래 인터페이스에서 OP/USDT와 같은 Optimism 통화 거래 쌍을 찾으세요. 구매하려는 Optimism 코인의 수량을 입력하고 클릭하세요.

우리가 일반적으로 엔터테인먼트를 위해 Douyin을 사용할 때 우리의 여가 경험을 방해하는 설명할 수 없고 이상한 광고가 종종 있습니다. 많은 사용자는 이러한 광고에 방해받지 않고 이러한 광고의 추천 푸시를 끄고 싶어하지만 알고 있다면 그렇지 않습니다. 작동 방법을 알려면 이 웹사이트의 편집자가 이 튜토리얼 가이드와 자세한 소개를 제공할 것입니다. 도움이 필요한 모든 사람에게 도움이 되기를 바랍니다. 우선 앱 설정에서 광고 푸시를 이해하고 관리하는 옵션을 찾은 다음 아래의 모든 광고 관련 스위치 옵션을 확인하고 뒷면의 스위치를 클릭하여 끄면 켜기 확인 메시지가 나타납니다. 광고가 팝업으로 표시됩니다. 클릭하면 광고가 닫힙니다.

EC 코인은 어디서 구입할 수 있나요? EC 코인은 어떤 플랫폼에서 거래되나요? 텍스트: EC 코인(Ethereum Classic, 약어: ETC)은 오픈 소스, 분산형 블록체인 플랫폼이자 Ethereum의 최초 하드 포크 통화입니다. EC 코인은 이더리움과 유사한 기술적 기반을 가지고 있지만 몇 가지 주요 차이점도 있습니다. 예를 들어 EC 코인은 블록 시간이 더 짧고 지분 증명(PoS) 합의 메커니즘을 사용하지 않습니다. EC 코인은 다음을 포함한 다양한 암호화폐 거래 플랫폼에서 구매할 수 있습니다. 중앙 집중식 거래소: Binance, Huobi, OKX, Matcha, Gate.io, Kraken, Bittrex, Poloniex 등 탈중앙화 거래소: PancakeSwap, Uniswap, Su

Kuaishou Express Edition은 매일 많은 수의 비디오를 볼 수 있어 언제 어디서나 이러한 멋진 비디오 콘텐츠를 볼 수 있습니다. 걱정과 지루함을 해소하기 위해 때로는 모든 사람이 동영상 시청에 대한 모든 사람의 인식에 직접적인 영향을 미치는 일부 광고 팝업을 접하게 되므로 모든 사람은 보다 편안한 시청 경험을 얻기 위해 이러한 광고 팝업을 닫고 싶어합니다. 작동하려면 제가 가져온 튜토리얼을 살펴보세요. Kuaishou Express Edition에서 광고 푸시를 끄는 방법: 1. 먼저 Kuaishou Express Edition 소프트웨어를 열고 Kuaishou 페이지로 이동하여 왼쪽 상단에 있는 [세 개의 가로선] 아이콘을 클릭합니다. 2. 그런 다음 Kuaishou Express Edition 소프트웨어를 클릭합니다. 3. 현재 페이지를 입력하세요.
