You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设置插屏广告关闭后返回其发起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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 08:36:05