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ヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









360 ブラウザによって推奨される広告をオフにするにはどうすればよいですか?多くのユーザーが 360 ブラウザを使用していると思いますが、このブラウザは時々広告が表示され、多くのユーザーを悩ませています. このサイトでは、お使いのコンピュータで 360 ブラウザが推奨する広告をオフにする方法をユーザーに丁寧に紹介します。コンピュータ上の 360 ブラウザによって推奨される広告をオフにするにはどうすればよいですか?方法 1: 1. 360 セーフ ブラウザを開きます。 2. 右上隅にある「3 本の横棒」のロゴを見つけて、[設定] をクリックします。 3. ポップアップインターフェースの左側のタスクバーで[ラボ]を見つけ、[「360ホットスポット情報」機能を有効にする]にチェックを入れます。方法 2: 1. まずダブルクリックします。

通信技術の進歩により、私たちの日常生活では電話でのやり取りがますます一般的になりました。ただし、ある番号に電話をかけてみたものの、その番号に接続できないことが判明する場合があります。時間とエネルギーを節約するために、多くの人が番号の有効性を確認するための空の番号検証サービスを探し始めます。このサービスは、ユーザーが番号が有効かどうかを迅速に確認し、不要なトラブルを回避するのに役立ちます。 1. 空のアカウント検出プラットフォームとは何ですか?ユーザーは、対応するお問い合わせ番号にダイヤルするか、公式ウェブサイトにアクセスして、オペレーターが提供する公式問い合わせサービスを通じて、空き番号を含む番号の状況を確認できます。このサービスは、ユーザーが番号の使用状況をすぐに把握できるようにするために、多くの事業者によって提供されています。オンラインの空き番号検出プラットフォームは現在、市場に際限なく登場しており、迅速かつ便利なサービスを提供しています。

ユーザーがモーメントを閲覧すると大量の広告が表示されますが、広告を完全にオフにするにはどうすればよいでしょうか?ユーザーは、[マイ] の [設定] をクリックし、[個人情報と権限] を見つけて、[パーソナライズされた広告管理] をクリックして、広告のパーソナライズをオフにする必要があります。この記事ではモーメントの広告を完全にオフにする方法を紹介しますので、ぜひ参考にしてください。 WeChat の使い方チュートリアル: モーメントの広告を完全にオフにする方法? 回答: 完全にオフにすることはできません。オフにできるのはパーソナライズされたおすすめのみです。 具体的な方法: 1. まず、[私] をクリックして、その中の設定を見つけます。 2. 個人情報と権限のオプションを見つけます。 3. 内部のパーソナライズされた広告管理機能をクリックします。 4. 広告のカスタマイズの右側にあるスイッチをクリックしてオフにします。広告をオフにする方法: 1. モーメントで広告を見つけます。 2.右クリック

Edge ブラウザをアップデートした後、多くのユーザーは、新しいタブ ページの下部に複数の Web サイトへのリンクがあり、広告という文字がマークされるなど、インターフェースに広告が多く表示され、非常に煩わしいと感じました。 Edge ブラウザでパーソナライズされた広告をオフにする方法はありますか?編集者がインターネットでいろいろな方法を調べたので、広告を消すちょっとした裏ワザを紹介します。新しいバージョンの Edge で広告をオフにする方法は? 1. Edge ブラウザを開きます。 2. 右上隅の[•••]をクリックします。 3. [設定]をクリックします。 4. [プライバシー、検索、サービス]をクリックします。 5. 「Web エクスペリエンスの個人設定」の右側にあるスイッチをオフにして、Microsoft がプッシュする個人設定をオフにします。

オプティミズムコインはどこで購入できますか? Optimism Coin は、Binance Huobi OKX Matcha Gate.io Kraken Bittrex Poloniex Coinbase Pro Gemini を含む多くの暗号通貨取引所で購入できます。 Optimism Coin を購入する前に、これらの取引所にアカウントを登録し、本人確認を完了する必要があります。 Optimism コインを購入する手順は次のとおりです。 安全で信頼できる取引所を選択してください。アカウントを登録し、本人確認を完了します。アカウントに資金を投入します。取引プラットフォームの取引インターフェースで、OP/USDT などのオプティミズム通貨の取引ペアを見つけます。購入したいオプティミズムコインの量を入力し、クリックします。

普段、娯楽として Douyin を使用していると、レジャー体験を妨げる不可解で奇妙な広告が表示されることがよくありますが、多くのユーザーはそれらに邪魔されず、これらの広告の推奨プッシュをオフにしたいと考えていますが、オフにできません。操作方法を知りたい場合は、この Web サイトの編集者がこのチュートリアル ガイドと詳細な紹介文を提供して、困っているすべての人を助けたいと考えています。まず、アプリの設定で広告プッシュを理解して管理するオプションを見つけます。次に、以下の広告関連のスイッチ オプションをすべて表示し、背面にあるスイッチをクリックしてオフにします。次に、広告をオフにするための確認プロンプトが表示されます。ポップアップが表示されたら、クリックして確認します。広告を閉じる

ECコインはどこで購入できますか? ECコインはどのプラットフォームで取引されていますか?本文: ECコイン(イーサリアムクラシック、略称:ETC)は、オープンソースの分散型ブロックチェーンプラットフォームであり、イーサリアム初のハードフォーク通貨です。 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 ページに移動し、左上隅にある [3 本の水平線] アイコンをクリックします; 2. 次に、画面上の [設定] をクリックします。現在のページ; 3. Enter
