SDK说明


开屏广告

<h1>开屏广告<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A">​</a></h1> <p>&gt; 开屏广告支持点睛、开屏V+等</p> <h3>1.1 WMSplashAd<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_1-1-wmsplashad">​</a></h3> <ul> <li>com.windmill.sdk.splash.WMSplashAd</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>WMSplashAd(Activity activity, WMSplashAdRequest adRequest, WMSplashAdListener adListener)</td> <td>构造方法,广告相关状态会通过 adListener 通知开发者。参数说明:activity(展示广告的 activity)、adRequest(广告请求对象)、adListener(广告状态监听器)。</td> </tr> <tr> <td>loadAdAndShow(ViewGroup adContainer)</td> <td>请求并立即展示广告。参数说明:adContainer(展示广告的容器)。</td> </tr> <tr> <td>loadAdOnly()</td> <td>拉取广告,配合showAd使用,实现和loadAdAndShow相同的功能。</td> </tr> <tr> <td>isReady()</td> <td>广告是否准备好,未准备好广告将无法展示。</td> </tr> <tr> <td>showAd(ViewGroup adContainer)</td> <td>展示广告,配合loadAdOnly使用,实现和loadAdAndShow相同的功能。</td> </tr> <tr> <td>checkValidAdCaches()</td> <td>查询当前广告位的所有缓存信息的<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E9%AB%98%E7%BA%A7%E8%AE%BE%E7%BD%AE/%E5%B9%BF%E5%91%8A%E5%AF%B9%E8%B1%A1/">AdInfo</a>对象、在广告加载成功后调用。</td> </tr> <tr> <td>destroy()</td> <td>当广告关闭不再使用时,必须调用此方法释放资源</td> </tr> </tbody> </table> <h3>1.2 WMSplashAdRequest<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_1-2-wmsplashadrequest">​</a></h3> <ul> <li>com.windmill.sdk.splash.WMSplashAdRequest</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>WMSplashAdRequest(String placementId, String userId, Map&lt;String, Object&gt; options)</td> <td>构造方法。参数说明:placementId(广告位Id)、userId(用户Id可选)、options(扩展参数,可传任意)。</td> </tr> <tr> <td>WMSplashAdRequest(String placementId, String userId, Map&lt;String, Object&gt; options, String appTitle, String appDesc, boolean disableAutoHideAd</td> <td>构造方法。参数说明:placementId(广告位Id)、userId(用户Id可选)、options(扩展参数,可传任意)、appTitle(广告Logo标题)、appDesc(广告Logo描述)、disableAutoHideAd(自动隐藏广告)。</td> </tr> <tr> <td>setAppTitle(String appTitle)</td> <td>设置应用开屏LOGO标题,广告将半屏Window展示。</td> </tr> <tr> <td>setAppDesc(String appDesc)</td> <td>设置应用开屏LOGO描,广告半屏Window展示。</td> </tr> <tr> <td>setDisableAutoHideAd(boolean disableAutoHideAd)</td> <td>广告结束,广告内容是否自动隐藏。 若开屏和应用共用Activity,建议false。若开屏是单独Activity ,建议true。</td> </tr> </tbody> </table> <h3>1.3 SplashADListener<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_1-3-splashadlistener">​</a></h3> <ul> <li>com.windmill.sdk.splash.WMSplashAdListener</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>onSplashAdSuccessLoad(String placementId)</td> <td>开屏广告成功加载。参数说明:placementId(报错的广告位Id)。</td> </tr> <tr> <td>onSplashAdFailToLoad(WindMillError error, String placementId)</td> <td>SD开屏广告加载失败。参数说明:error(报错信息,具体可看其内部code和message)、placementId(报错的广告位Id)。</td> </tr> <tr> <td>onSplashAdSuccessPresent(AdInfo adInfo)</td> <td>开屏广告成功展示,媒体可在此记录曝光。参数说明:adInfo(广告信息,具体可看其内部成员变量)。</td> </tr> <tr> <td>onSplashAdClicked(AdInfo adInfo)</td> <td>开屏广告被点击。参数说明:adInfo(广告信息,具体可看其内部成员变量)。</td> </tr> <tr> <td>onSplashClosed(AdInfo adInfo, IWMSplashEyeAd splashEyeAd)</td> <td>开屏广告关闭。参数说明:adInfo(广告信息,具体可看其内部成员变量)、splashEyeAd:开屏点睛广告控制接口类,开发者可通过此接口控制展示点睛广告</td> </tr> </tbody> </table> <p>注意:<br /> (1)当穿山甲、快手的开屏广告素材支持点睛时,splashEyeAd不为null。<br /> (2)当展示的是快手开屏广告时,splashEyeAd为非null值,但不一定表示此次快手开屏广告的素材支持点睛,不支持时调用IWMSplashEyeAd#show()方法会直接回调WMSplashEyeAdListener#onAdDismiss()方法。<br /> (3)当splashEyeAd不为null,但是开发者不想支持点睛功能时,必须调用splashEyeAd.destroy()释放资源,然后跳转主页面或者移除开屏View。 |</p> <h3>1.4 IWMSplashEyeAd<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_1-4-iwmsplasheyead">​</a></h3> <ul> <li>com.windmill.sdk.splash.IWMSplashEyeAd</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>show(Context context, Rect rect, WMSplashEyeAdListener splashEyeAdListener)</td> <td>展示开屏点睛(V+、小窗)广告</td> </tr> </tbody> </table> <p>context:上下文<br /> rect:开屏点睛广告缩放动画结束时广告的显示大小,以屏幕左上角为起点(<strong>注意:快手必须传入此参数</strong>)<br /> splashEyeAdListener:开屏点睛广告事件监听器 | | getSuggestedSize(Context context) | 获取缩放动画结束时推荐显示的广告大小<br /> (目前只有穿山甲会返回,建议优先使用此大小) | | getSplashView() | 获取开屏广告的view | | onFinished() | 当执行完缩放动画时,开发者必须调用此方法通知SDK,显示广告的关闭按钮 | | destroy() | 当广告关闭不再使用时,必须调用此方法释放资源 |</p> <h3>1.5 WMSplashEyeAdListener<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_1-5-wmsplasheyeadlistener">​</a></h3> <ul> <li>com.windmill.sdk.splash.WMSplashEyeAdListener</li> </ul> <table> <thead> <tr> <th>方法名</th> <th>方法介绍</th> </tr> </thead> <tbody> <tr> <td>onAnimationStart(View splashView)</td> <td>开发者需在此回调中执行开屏点睛广告的动画缩放</td> </tr> </tbody> </table> <p>splashView:开屏广告的View<br /> 注意:<br /> (1)缩放动画的示例代码可参考Demo。<br /> (2)缩放动画结束时,必须调用<strong>IWMSplashEyeAd#onFinished()</strong>。<br /> (3)<strong>快手不会触发此回调,不能控制快手的缩放动画</strong>。 | | onAdDismiss(boolean isSupportEyeSplash) | 开屏点睛广告关闭回调,建议在回调中调用<strong>IWMSplashEyeAd#destroy()</strong><br /> isSupportEyeSplash:是否支持开屏点睛 |</p> <h2>2. 接入代码示例<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-%E6%8E%A5%E5%85%A5%E4%BB%A3%E7%A0%81%E7%A4%BA%E4%BE%8B">​</a></h2> <h3>2.1 普通开屏广告接入事例<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-1-%E6%99%AE%E9%80%9A%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A%E6%8E%A5%E5%85%A5%E4%BA%8B%E4%BE%8B">​</a></h3> <h4>2.1.1 设置监听回调<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-1-1-%E8%AE%BE%E7%BD%AE%E7%9B%91%E5%90%AC%E5%9B%9E%E8%B0%83">​</a></h4> <p>java</p> <pre><code>WMSplashAdListener splashAdListener = new WMSplashAdListener() { @Override public void onSplashAdSuccessPresent(AdInfo adInfo) {// 开屏广告成功展示 } /** * 开屏广告成功加载 * 如果不是LoadAndShow模式,则需要调用showAd()方法展示广告 * adContainer 开屏内容展示容器,若传null,则默认进行全屏展示 */ @Override public void onSplashAdSuccessLoad(String placementId) { } /** * 开屏广告展示失败 * WindAdError 开屏广告错误内容 * placementId 广告位 * 广告失败直接进入主页面 */ @Override public void onSplashAdFailToLoad(WindMillError error, String placementId) { jumpMainActivity(); } @Override public void onSplashAdClicked(AdInfo adInfo) { } @Override public void onSplashClosed(AdInfo adInfo, IWMSplashEyeAd splashEyeAd) {// 开屏广告关闭 //需要判断是否能进入主页面 jumpWhenCanClick(); } };</code></pre> <h4>2.1.2 开屏广告点击注意事项<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-1-2-%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A%E7%82%B9%E5%87%BB%E6%B3%A8%E6%84%8F%E4%BA%8B%E9%A1%B9">​</a></h4> <p>java</p> <pre><code>/** * 设置一个变量来控制当前开屏页面是否可以跳转,当开屏广告为普链类广告时,点击会打开一个广告落地页,此时开发者还不能打开自己的App主页。 * 当从广告落地页返回以后,才可以跳转到开发者自己的App主页;当开屏广告是App类广告时只会下载App。 */ public boolean canJumpImmediately = false; private void jumpWhenCanClick() { if (canJumpImmediately) { jumpMainActivity(); } else { canJumpImmediately = true; } } /** * 不可点击的开屏,使用该jump方法,而不是用jumpWhenCanClick */ private void jumpMainActivity() { Intent intent = new Intent(this, MainActivity.class); this.startActivity(intent); this.finish(); } @Override protected void onPause() { canJumpImmediately = false; } @Override protected void onResume() { if (canJumpImmediately) { jumpWhenCanClick(); } canJumpImmediately = true; }</code></pre> <h4>2.1.3 开屏加载展示<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-1-3-%E5%BC%80%E5%B1%8F%E5%8A%A0%E8%BD%BD%E5%B1%95%E7%A4%BA">​</a></h4> <p>&gt; 此方式自适应广告展示大小,自带LOGO样式展示APP信息,无需开发者处理底部LOGO内容</p> <p>java</p> <pre><code>/** * PLACEMENT_ID 必填 * USER_ID 可选 * OPTIONS 自定义参数 * options.put(WMConstants.AD_WIDTH, widthPixels)//针对穿山甲开屏广告有效 * options.put(WMConstants.AD_HEIGHT, heightPixels)//针对穿山甲开屏广告有效 */ WMSplashAdRequest adRequest = new WMSplashAdRequest(PLACEMENT_ID, USER_ID, OPTIONS); /** * 广告结束,广告内容是否自动隐藏.默认是false * 若开屏和应用共用Activity,建议false。 * 若开屏是单独Activity ,建议true。 */ adRequest.setDisableAutoHideAd(true); /** * 设置开屏应用LOGO区域(可选) * 设置此项开屏会默认使用Window渲染 */ adRequest.setAppTitle(appTitle); //设置开屏应用LOGO描述(可选) adRequest.setAppDesc(appDesc); WMSplashAd mWindSplashAD = new WMSplashAd(activity, adRequest, splashAdListener); /** * 建议默认实时加载并展示广告 */ private boolean isLoadAndShow = true; /** * adContainer 开屏内容展示容器,若传null,则默认进行全屏展示 */ if (isLoadAndShow) { mWindSplashAD.loadAdAndShow(adContainer);//不需要再调用mWindSplashAD.showAd(); } else { mWindSplashAD.loadAdOnly();//需要在onSplashAdSuccessLoad回调里调用mWindSplashAD.showAd(); }</code></pre> <h3>2.2 开屏点睛事例<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-2-%E5%BC%80%E5%B1%8F%E7%82%B9%E7%9D%9B%E4%BA%8B%E4%BE%8B">​</a></h3> <h4>2.2.1 开屏Activity与显示点睛广告的Activity不是同一个<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-2-1-%E5%BC%80%E5%B1%8Factivity%E4%B8%8E%E6%98%BE%E7%A4%BA%E7%82%B9%E7%9D%9B%E5%B9%BF%E5%91%8A%E7%9A%84activity%E4%B8%8D%E6%98%AF%E5%90%8C%E4%B8%80%E4%B8%AA">​</a></h4> <p>1、新建SplashEyeAdHolder类用于缓存IWMSplashEyeAd实例</p> <p>java</p> <pre><code>public class SplashEyeAdHolder { public static IWMSplashEyeAd splashEyeAd; }</code></pre> <p>2、onSplashClosed时缓存splashEyeAd对象并设置开屏相关信息</p> <p>java</p> <pre><code>public class SplashActivity extends AppCompatActivity implements WMSplashAdListener { /** * 设置开屏相关信息(SplashZoomOutManager请参考Demo),同时跳转首页Activity并取消页面跳转动画,关闭当前页面 */ private void jumpMainActivity() { if (SplashEyeAdHolder.splashEyeAd != null) { try { SplashZoomOutManager zoomOutManager = SplashZoomOutManager.getInstance(getApplicationContext()); zoomOutManager.setSplashInfo(SplashEyeAdHolder.splashEyeAd.getSplashView(), getWindow().getDecorView()); } catch (Throwable e) { e.printStackTrace(); } } Intent intent = new Intent(this, MainActivity.class); startActivity(intent); overridePendingTransition(0, 0); this.finish(); } @Override public void onSplashClosed(AdInfo adInfo, IWMSplashEyeAd splashEyeAd) { SplashEyeAdHolder.splashEyeAd = splashEyeAd; jumpMainActivity(); } }</code></pre> <p>3、在首页Activity中,创建showSplashEyeAd()方法</p> <p>java</p> <pre><code>public class MainActivity extends AppCompatActivity { private static final String TAG = &amp;quot;MainActivity&amp;quot;; @Override public void onAttachedToWindow() { super.onAttachedToWindow(); showSplashEyeAd(); } private View zoomOutView; private void showSplashEyeAd() { if (SplashEyeAdHolder.splashEyeAd == null) { return; } SplashEyeAdHolder.splashEyeAd.show(MainActivity.this, null, new WMSplashEyeAdListener() { @Override public void onAnimationStart(View splashView) { Log.i(TAG, &amp;quot;------------onAnimationStart---------&amp;quot;); SplashZoomOutManager zoomOutManager = SplashZoomOutManager.getInstance(getApplicationContext()); int[] suggestedSize = SplashEyeAdHolder.splashEyeAd.getSuggestedSize(getApplicationContext()); if (suggestedSize != null) { zoomOutManager.setSplashEyeAdViewSize(suggestedSize[0], suggestedSize[1]); } zoomOutView = zoomOutManager.startZoomOutInTwoActivity((ViewGroup) getWindow().getDecorView(), findViewById(android.R.id.content), new SplashZoomOutManager.AnimationCallBack() { @Override public void animationStart(int animationTime) { Log.i(TAG, &amp;quot;------------animationStart---------&amp;quot;); } @Override public void animationEnd() { Log.i(TAG, &amp;quot;------------animationEnd---------&amp;quot;); SplashEyeAdHolder.splashEyeAd.onFinished(); } }); if (zoomOutView != null) { overridePendingTransition(0, 0); } } @Override public void onAdDismiss(boolean isSupportEyeSplash) { Log.i(TAG, &amp;quot;------------onAdDismiss---------&amp;quot; + isSupportEyeSplash); SplashZoomOutManager zoomOutManager = SplashZoomOutManager.getInstance(getApplicationContext()); zoomOutManager.clearStaticData(); if (zoomOutView != null) { ViewUtils.removeFromParent(zoomOutView); } SplashEyeAdHolder.splashEyeAd.destroy(); SplashEyeAdHolder.splashEyeAd = null; } }); } }</code></pre> <h4>2.2.2 开屏Activity与显示点睛广告的Activity是同一个<a href="https://doc.sigmob.com/ToBid%E4%BD%BF%E7%94%A8%E6%8C%87%E5%8D%97/SDK%E9%9B%86%E6%88%90%E8%AF%B4%E6%98%8E/Android/%E5%B9%BF%E5%91%8A%E7%B1%BB%E5%9E%8B/%E5%BC%80%E5%B1%8F%E5%B9%BF%E5%91%8A/#_2-2-2-%E5%BC%80%E5%B1%8Factivity%E4%B8%8E%E6%98%BE%E7%A4%BA%E7%82%B9%E7%9D%9B%E5%B9%BF%E5%91%8A%E7%9A%84activity%E6%98%AF%E5%90%8C%E4%B8%80%E4%B8%AA">​</a></h4> <p>java</p> <pre><code>public class MainActivity extends AppCompatActivity { String splash_placement_id = &amp;quot;&amp;quot;; private WMSplashAd splashAd; private ViewGroup splashLY; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initViewGroup(this); WMSplashAdRequest adRequest = new WMSplashAdRequest(splash_placement_id, String.valueOf(0), null); splashAd = new WMSplashAd(this, adRequest, new WMSplashAdListener() { @Override public void onSplashAdSuccessPresent(AdInfo adInfo) { Log.d(&amp;quot;lance&amp;quot;, &amp;quot;------onSplashAdSuccessPresent-------&amp;quot;); } @Override public void onSplashAdSuccessLoad(String placementId) { Log.d(&amp;quot;lance&amp;quot;, &amp;quot;------onSplashAdSuccessLoad-------&amp;quot;); } @Override public void onSplashAdFailToLoad(WindMillError error, String placementId) { Log.d(&amp;quot;lance&amp;quot;, &amp;quot;------onSplashAdFailToLoad-------&amp;quot; + error.toString()); if (splashLY != null) { splashLY.removeAllViews(); splashLY.setVisibility(View.GONE); } } @Override public void onSplashAdClicked(AdInfo adInfo) { Log.d(&amp;quot;lance&amp;quot;, &amp;quot;------onSplashAdClicked-------&amp;quot;); } @Override public void onSplashClosed(AdInfo adInfo, IWMSplashEyeAd splashEyeAd) { Log.d(&amp;quot;lance&amp;quot;, &amp;quot;------onSplashClosed-------&amp;quot;); if (splashLY != null) { splashLY.removeAllViews(); splashLY.setVisibility(View.GONE); } //展示点睛广告 showSplashEyeAd(splashEyeAd); } }); // splashAd.loadAdAndShow(null); splashAd.loadAdAndShow(splashLY); } private void initViewGroup(Activity activity) { splashLY = new RelativeLayout(activity); RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT); ViewGroup viewGroup = (ViewGroup) activity.getWindow().getDecorView(); viewGroup.addView(splashLY, layoutParams); } private View zoomOutView; private void showSplashEyeAd(IWMSplashEyeAd splashEyeAd) { if (splashEyeAd == null) { return; } splashEyeAd.show(this, null, new WMSplashEyeAdListener() { @Override public void onAnimationStart(View splashView) { Log.i(&amp;quot;lance&amp;quot;, &amp;quot;----------onAnimationStart---------: eye ad&amp;quot;); //执行缩放动画 SplashZoomOutManager zoomOutManager = SplashZoomOutManager.getInstance(MainActivity.this.getApplicationContext()); ////建议优先使用IATSplashEyeAd#getSuggestedSize()返回的大小作为缩放动画的目标大小 int[] suggestedSize = splashEyeAd.getSuggestedSize(MainActivity.this.getApplicationContext()); if (suggestedSize != null) { zoomOutManager.setSplashEyeAdViewSize(suggestedSize[0], suggestedSize[1]); } // zoomOutManager.setSplashInfo(splashView, getMyActivity().getWindow().getDecorView()); ViewGroup content = MainActivity.this.findViewById(android.R.id.content); zoomOutView = zoomOutManager.startZoomOut(splashView, content, content, new SplashZoomOutManager.AnimationCallBack() { @Override public void animationStart(int animationTime) { Log.i(&amp;quot;lance&amp;quot;, &amp;quot;----------animationStart---------: eye ad&amp;quot;); } @Override public void animationEnd() { Log.i(&amp;quot;lance&amp;quot;, &amp;quot;----------animationEnd---------: eye ad&amp;quot;); //当缩放动画完成时必须调用IATSplashEyeAd#onFinished()通知SDK splashEyeAd.onFinished(); } }); } @Override public void onAdDismiss(boolean isSupportEyeSplash) { Log.i(&amp;quot;lance&amp;quot;, &amp;quot;----------onAdDismiss---------:&amp;quot; + isSupportEyeSplash); //建议在此回调中调用IATSplashEyeAd#destroy()释放资源以及释放其他资源,以免造成内存泄漏 SplashZoomOutManager zoomOutManager = SplashZoomOutManager.getInstance(MainActivity.this.getApplicationContext()); zoomOutManager.clearStaticData(); if (zoomOutView != null) { ViewUtils.removeFromParent(zoomOutView); } splashEyeAd.destroy(); } }); } }</code></pre>

页面列表

ITEM_HTML