跳到主要内容

Banner

可固定在屏幕顶部或底部的长方形广告。

简介

在App的顶部,中部或底部的图片(支持横屏)。支持的广告尺寸:20:3、3:2,效果图如下:

20:33:2

构建组件

创建TBannerView对象。

<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.cloud.hisavana.sdk.api.adx.TBannerView
android:id="@+id/banner_view"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</RelativeLayout>
// 绑定xml布局中的view
TBannerView tBannerView = findViewById(R.id.banner_view);
// 设置广告位ID,其中"banner_id"是banner广告位ID
tBannerView.setPlacementId("banner_id");

或者

// 手动创建TBannerView对象,并添加到父布局,其中"banner_id"是banner广告位ID
TBannerView tBannerView = new TBannerView(this, "banner_id");

加载广告

请设置相应参数和监听回调。

// 是否隐藏个性化关闭按钮,默认显示
tBannerView.setHideAdCloseView(true);
// 设置广告监听器
tBannerView.setListener(new TAdListener());
// 加载广告
tBannerView.loadAd();

// 广告监听器,监听广告的请求超时、加载完成(填充)、展示、点击、异常、关闭动作的回调
private static class TAdListener extends AdListener {

// 异常回调(适用的广告位:所有广告位)
@Override
public void onError(TaErrorCode adError) {
Log.d(TAG,"Ad failed callback");
}

// 加载完成回调(适用的广告位:Splash、Interstitial、Banner、Reward)
@Override
public void onAdLoaded() {
Log.d(TAG,"Ad loaded callback");
}

// 点击回调(适用的广告位:Splash、Interstitial、Banner、Reward)
@Override
public void onAdClicked() {
Log.d(TAG,"Ad click callback");
}

// 展示回调(适用的广告位:Splash、Interstitial、Banner、Reward)
@Override
public void onAdShow() {
Log.d(TAG,"Ad show callback");
}

// 请求超时回调(适用的广告位:所有广告位)
@Override
public void onTimeOut() {
Log.d(TAG,"Ad request timeout callback");
}

// 关闭回调(适用的广告位:Banner)
@Override
public void onAdClosed(TBannerView bannerView) {
Log.d(TAG,"Ad close callback");
}
}

展示广告

请把TBannerView对象展示出来。

// 当前广告加载成功并且处于投放期内,则进行展示;否则不进行展示
if (tBannerView != null && tBannerView.isReady()) {
tBannerView.show();
}

销毁广告

请及时回收广告,否则App会发生内存泄漏。

@Override
public void onAdClosed(TBannerView tBannerView) {
// 广告关闭后假如不再继续使用视图和广告对象,建议您及时释放视图和广告对象,避免内存泄漏。
if(tBannerView != null){
tBannerView.destroy();
removeView(tBannerView);
tBannerView = null;
}
}
// 退出广告场景后,请销毁该广告对象。
@Override
protected void onDestroy() {
super.onDestroy();
if (tBannerView != null) {
tBannerView.destroy();
removeView(tBannerView);
tBannerView = null;
}
}

// 移除视图
private void removeView(View v) {
if (v == null) return;
ViewParent viewGroup = v.getParent();
if (viewGroup != null && viewGroup instanceof ViewGroup) {
((ViewGroup) viewGroup).removeView(v);
}
}

其它API

API调用介绍
tBannerView.isAdValid()当前广告是否在有效期内
tBannerView.isLoaded()当前广告是否加载成功
tBannerView.isReady()当前广告加载成功并且处于投放期内,则进行展示;否则不进行展示
tBannerView.isOfflineAd()当前广告是否离线
tBannerView.getFillAdType()当前填充广告属于离线还是在线广告;1:离线广告、0:在线广告、-1:无填充

提醒:TBannerView是Banner广告的占位View,Banner广告默认宽度占满父布局,高度根据运营广告位配置不同比例自动计算。