如何设置插屏广告关闭后返回其发起Activity的过渡动画?
关于插屏广告关闭后返回发起Activity的过渡动画设置
嘿,这个问题我之前做项目时刚好碰到过,咱们来一步步搞定它!
首先要明确:插屏广告关闭的时机并不是Activity的onBackPressed回调,而是要在广告自身的关闭回调里处理过渡动画——这才是广告真正退出、回到原Activity的触发点。
具体实现步骤
- 找到你初始化插屏广告的代码,给它设置一个全屏内容回调(以Google AdMob为例,其他主流SDK的回调逻辑类似),在
onAdClosed方法里设置过渡动画:
// 假设你已经初始化好了interstitialAd实例 interstitialAd.setFullScreenContentCallback(new FullScreenContentCallback() { @Override public void onAdClosed() { // 这里设置返回原Activity的过渡动画 overridePendingTransition(R.anim.fade_in_c, R.anim.fade_out_c); // 可选:在这里重新加载下一条广告,方便后续展示 loadInterstitialAd(); super.onAdClosed(); } // 其他回调方法(如广告展示失败的处理)可按需实现 });
关键注意点
- 动画资源对应:
overridePendingTransition的第一个参数是原Activity进入屏幕的动画,第二个是广告界面退出屏幕的动画,要确保你的fade_in_c.xml和fade_out_c.xml逻辑匹配(比如fade_in是从透明到不透明,fade_out是从不透明到透明)。 - SDK自带动画处理:有些广告SDK默认自带过渡动画,如果你想完全用自定义动画,可能需要在广告请求或初始化时关闭SDK自带的动画(具体看对应SDK的官方文档)。
- 上下文正确性:确保调用
overridePendingTransition的是发起广告的那个Activity实例,避免空指针或无效调用。
如果你的广告是通过独立的Activity展示的(比如某些小众SDK的实现),那你需要在那个广告Activity的finish()方法调用前后设置overridePendingTransition,逻辑和你在onBackPressed里的写法一致。
内容的提问来源于stack exchange,提问作者Manos Rasidakis
相关产品推荐
相关产品推荐

