package com.demo.library_ad;
|
|
import android.app.Activity;
|
import android.view.View;
|
import android.view.ViewGroup;
|
|
import com.bytedance.sdk.openadsdk.AdSlot;
|
import com.bytedance.sdk.openadsdk.TTAdManager;
|
import com.bytedance.sdk.openadsdk.TTAdNative;
|
import com.bytedance.sdk.openadsdk.TTSplashAd;
|
import com.demo.lib.common.util.common.DimenUtils;
|
import com.qq.e.ads.splash.SplashAD;
|
import com.qq.e.ads.splash.SplashADListener;
|
import com.qq.e.comm.util.AdError;
|
|
public class SplashAdUtil {
|
|
/**
|
* 加载开屏广告
|
*
|
* @param adType
|
* @param pid
|
* @param context
|
* @param vg_ad
|
* @param splashAdListener
|
*/
|
public static void loadAD(AdUtil.AD_TYPE adType, String pid, Activity context, ViewGroup vg_ad, final SplashAdListener splashAdListener) {
|
if (adType == null) {
|
splashAdListener.close();
|
return;
|
}
|
if (AdUtil.AD_TYPE.csj == adType) {
|
loadCSJ(context, pid, vg_ad, splashAdListener);
|
} else if (AdUtil.AD_TYPE.gdt == adType) {
|
loadGDT(context, pid, vg_ad, splashAdListener);
|
} else {
|
splashAdListener.close();
|
}
|
}
|
|
private static void loadGDT(Activity context, String pid, ViewGroup vg_ad, final SplashAdListener splashAdListener) {
|
new SplashAD(context, pid, new SplashADListener() {
|
@Override
|
public void onADDismissed() {
|
splashAdListener.close();
|
}
|
|
@Override
|
public void onNoAD(AdError adError) {
|
splashAdListener.noAd();
|
}
|
|
@Override
|
public void onADPresent() {
|
}
|
|
@Override
|
public void onADClicked() {
|
System.out.println();
|
}
|
|
@Override
|
public void onADTick(final long l) {
|
|
}
|
|
@Override
|
public void onADExposure() {
|
System.out.println();
|
}
|
|
@Override
|
public void onADLoaded(long l) {
|
}
|
//请求超时时间为4s
|
}, 4000).fetchAndShowIn(vg_ad);
|
}
|
|
|
/**
|
* 加载穿山甲广告
|
*
|
* @param context
|
* @param vg_ad
|
* @param splashAdListener
|
*/
|
/**
|
* @param context
|
* @param code 代码位
|
* @param vg_ad
|
* @param splashAdListener
|
*/
|
private static void loadCSJ(Activity context, String code, final ViewGroup vg_ad, final SplashAdListener splashAdListener) {
|
TTAdManager ttAdManager = null;
|
try {
|
ttAdManager = TTAdManagerHolder.get();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
if (ttAdManager == null) {
|
if (splashAdListener != null)
|
splashAdListener.noAd();
|
return;
|
}
|
TTAdNative mTTAdNative = ttAdManager.createAdNative(context.getApplicationContext());
|
//穿山甲广告
|
int width = DimenUtils.getScreenWidth(context);
|
int height = DimenUtils.getScreenHeight(context);
|
if (width == 0)
|
width = 720;
|
if (height == 0)
|
height = 1080;
|
AdSlot adSlot = new AdSlot.Builder()
|
.setCodeId(code)
|
.setSupportDeepLink(true)
|
.setImageAcceptedSize(width, height)
|
.build();
|
mTTAdNative.loadSplashAd(adSlot, new TTAdNative.SplashAdListener() {
|
|
@Override
|
public void onError(int i, String s) {
|
splashAdListener.noAd();
|
}
|
|
@Override
|
public void onTimeout() {
|
splashAdListener.noAd();
|
}
|
|
@Override
|
public void onSplashAdLoad(TTSplashAd ad) {
|
if (ad == null) {
|
splashAdListener.noAd();
|
return;
|
}
|
View view = ad.getSplashView();
|
vg_ad.removeAllViews();
|
//把SplashView 添加到ViewGroup中
|
vg_ad.addView(view);
|
//设置SplashView的交互监听器
|
ad.setSplashInteractionListener(new TTSplashAd.AdInteractionListener() {
|
@Override
|
public void onAdClicked(View view, int type) {
|
}
|
|
@Override
|
public void onAdShow(View view, int type) {
|
}
|
|
@Override
|
public void onAdSkip() {
|
splashAdListener.close();
|
}
|
|
@Override
|
public void onAdTimeOver() {
|
splashAdListener.close();
|
}
|
});
|
}
|
}, 5000);
|
|
|
}
|
|
public interface SplashAdListener {
|
void close();
|
|
void noAd();
|
}
|
|
}
|