1,接入广告条
按照官方文档接入的时候遇到个问题,官方文档中是使用的布局文件来显示广告条,但是cocos2dx 没有使用布局文件,所以这里需要我们在代码中手动创建一个布局容器来显示广告条,代码如下:
// 声明一个容器
private static RelativeLayout bannerContainer;
//创建广告条容器
public static void createBanner()
{
//创建广告条容器
bannerContainer = new RelativeLayout(mActivity);
RelativeLayout.LayoutParams parentLayoutParams = new RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_CONTENT,
RelativeLayout.LayoutParams.WRAP_CONTENT);
mActivity.addContentView(bannerContainer, parentLayoutParams);
// 创建Banner广告AdView对象
// appId : 在 http://e.qq.com/dev/ 能看到的app唯一字符串
// posId : 在 http://e.qq.com/dev/ 生成的数字串,并非 appid 或者 appkey
mBannerView = new BannerView(mActivity,
ADSize.BANNER,
mActivity.getResources().getString(R.string.gdt_appid),
mActivity.getResources().getString(R.string.gdt_banner_postid));
//设置广告轮播时间,为0或30~120之间的数字,单位为s,0标识不自动轮播
mBannerView.setRefresh(30);
mBannerView.setADListener(new AbstractBannerADListener()
{
@Override
public void onNoAD(AdError adError)
{
Log.i("GDT_AD", "BannerNoAD,eCode=" + adError.getErrorCode());
}
@Override
public void onADReceiv()
{
Log.i("GDT_AD", "ONBannerReceive");
}
});
bannerContainer.addView(mBannerView);
mBannerView.loadAD();
}
然后在这个bannerContainer里面addview广告条view。
显示的时候直接创建,不显示的时候就销毁
mBannerView.destroy();
2.接入插屏广告
这里需要注意的是创建插屏广告view之后需要load一次广告
public static void createInterstitialAD()
{
mInterstitialAD = new InterstitialAD(mActivity,
mActivity.getResources().getString(R.string.gdt_appid),
mActivity.getResources().getString(R.string.gdt_interteristal_postid));
mInterstitialAD.setADListener(new AbstractInterstitialADListener()
{
@Override
public void onADReceive()
{
Log.i("GDT_AD", "LoadInterstitialAd SUCCESS");
}
@Override
public void onNoAD(AdError adError)
{
Log.i("GDT_AD", String.format("LoadInterstitialAd Fail, error code: %d, error msg: %s", adError.getErrorCode(), adError.getErrorMsg()));
}
});
//初始化必须加载一次广告
mInterstitialAD.loadAD();
}
请注意:从cocos2dx通过jnihelper调用到java函数的时候一定要在ui线程中显示广告条或者插屏广告,不然程序可能会崩掉
public static void showBanner()
{
Log.i("GDT_AD","show banner");
//在UI线程中显示广告条
mActivity.runOnUiThread(new Runnable()
{
@Override
public void run()
{
createBanner();
}
});
}
网友评论