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) { } }, 0).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(); } }