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

安卓端如何设置app open ad(应用开屏广告)的背景颜色

安卓App Open Ad开屏广告背景色正确设置方案

现有代码不生效原因

  • 你当前对Activity的DecorView设置背景的操作仅作用于Activity自身根布局,开屏广告SDK会在Window层新增独立的广告承载容器,默认自带白色背景,会完全覆盖你设置的Activity根布局背景
  • 背景设置时机错误,需要等广告即将展示的回调触发后再修改最上层的广告容器背景,不能在调用show()方法前直接修改

正确实现方式

方案1:通过广告展示回调动态修改容器背景

在FullScreenContentCallback的onAdShowedFullScreenContent回调中遍历DecorView的所有子View,给广告承载容器设置背景色,Java实现代码如下:

FullScreenContentCallback fullScreenContentCallback = new FullScreenContentCallback() {
    @Override
    public void onAdShowedFullScreenContent() {
        super.onAdShowedFullScreenContent();
        ViewGroup decorView = (ViewGroup) currentActivity.getWindow().getDecorView();
        for (int i = 0; i < decorView.getChildCount(); i++) {
            decorView.getChildAt(i).setBackgroundColor(Color.BLACK);
        }
    }

    @Override
    public void onAdFailedToShowFullScreenContent(@NonNull AdError adError) {
        super.onAdFailedToShowFullScreenContent(adError);
        // 广告展示失败的自定义处理逻辑
    }

    @Override
    public void onAdDismissedFullScreenContent() {
        super.onAdDismissedFullScreenContent();
        // 广告关闭后的自定义处理逻辑
    }
};

// 调用顺序必须先设置回调,再执行show操作
appOpenAd.setFullScreenContentCallback(fullScreenContentCallback);
appOpenAd.show(currentActivity);

Kotlin实现代码如下:

val fullScreenContentCallback = object : FullScreenContentCallback() {
    override fun onAdShowedFullScreenContent() {
        super.onAdShowedFullScreenContent()
        val decorView = currentActivity.window.decorView as ViewGroup
        for (i in 0 until decorView.childCount) {
            decorView.getChildAt(i).setBackgroundColor(Color.BLACK)
        }
    }

    override fun onAdFailedToShowFullScreenContent(adError: AdError) {
        super.onAdFailedToShowFullScreenContent(adError)
        // 广告展示失败的自定义处理逻辑
    }

    override fun onAdDismissedFullScreenContent() {
        super.onAdDismissedFullScreenContent()
        // 广告关闭后的自定义处理逻辑
    }
}

appOpenAd.fullScreenContentCallback = fullScreenContentCallback
appOpenAd.show(currentActivity)

方案2:修改开屏广告Activity主题配置(避免加载阶段白屏)

如果需要避免广告加载过程中出现短暂白屏,可以直接给承载开屏广告的Activity配置黑色背景的主题,在res/values/styles.xml中新增主题:

<style name="AppOpenAdTheme" parent="你的应用默认主题">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:statusBarColor">@android:color/black</item>
    <item name="android:navigationBarColor">@android:color/black</item>
</style>

之后在AndroidManifest.xml中给对应Activity应用该主题即可。


内容的提问来源于stack exchange,提问作者Shahzaib

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 15:54:04