有可能在Android上为闪屏设置夜间限定符吗? 背景

有可能在Android上为闪屏设置夜间限定符吗? 背景,android,android-night-mode,Android,Android Night Mode,我知道安卓Q上有一个新功能,最终支持黑暗主题(关于检测它的文章) 我还知道有“夜灯”功能()使屏幕变得更黄 支持手动选择主题是我多年来一直在做的事情(仅在Activity的onCreate的第一行代码中使用),但我想知道是否有一些自动功能允许我在应用程序真正启动之前在启动屏幕上设置它 问题 这似乎是一个非常古老的特性(从API 8开始!)在Android上已经存在了很长时间,在参考资料中有“夜间”限定符,我甚至从未尝试过 可悲的是,因为“黑暗主题”和与夜晚相关的东西现在更多地被作为新功能()来谈

我知道安卓Q上有一个新功能,最终支持黑暗主题(关于检测它的文章)

我还知道有“夜灯”功能()使屏幕变得更黄

支持手动选择主题是我多年来一直在做的事情(仅在Activity的onCreate的第一行代码中使用),但我想知道是否有一些自动功能允许我在应用程序真正启动之前在启动屏幕上设置它

问题 这似乎是一个非常古老的特性(从API 8开始!)在Android上已经存在了很长时间,在参考资料中有“夜间”限定符,我甚至从未尝试过

可悲的是,因为“黑暗主题”和与夜晚相关的东西现在更多地被作为新功能()来谈论,我找不到旧功能的全部内容

但是,看看一些文章和文档,它似乎几乎完全是手动的:

  • -说我可以自己设置,包括设置为自动。然而,这似乎与停靠有关,甚至可能与汽车模式有关

  • -表示我可以将“夜间”设置为限定符,并且有一个“夜间模式”

我试过的 我试图相应地设置各种主题:

res/drawable/splash.xml

  <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
      <shape android:shape="rectangle">
        <solid android:color="#fff"/>
      </shape>
    </item>
    ...
  </layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="?attr/colorSurface"/>
    </shape>
  </item>
  ...
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="#000"/>
    </shape>
  </item>
  ...
</layer-list>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowBackground">@drawable/splash</item>
  </style>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowSplashscreenContent">@drawable/splash</item>
  </style>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#fff" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#000" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
    <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowBackground">@drawable/splash</item>
        <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
        <item name="android:statusBarColor" tools:targetApi="lollipop">?android:colorBackground</item>
        <item name="colorSecondary">?colorAccent</item>
        <item name="android:colorSecondary" tools:targetApi="n_mr1">?colorAccent</item>
    </style>

...
res/drawable-v29/splash.xml

  <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
      <shape android:shape="rectangle">
        <solid android:color="#fff"/>
      </shape>
    </item>
    ...
  </layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="?attr/colorSurface"/>
    </shape>
  </item>
  ...
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="#000"/>
    </shape>
  </item>
  ...
</layer-list>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowBackground">@drawable/splash</item>
  </style>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowSplashscreenContent">@drawable/splash</item>
  </style>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#fff" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#000" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
    <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowBackground">@drawable/splash</item>
        <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
        <item name="android:statusBarColor" tools:targetApi="lollipop">?android:colorBackground</item>
        <item name="colorSecondary">?colorAccent</item>
        <item name="android:colorSecondary" tools:targetApi="n_mr1">?colorAccent</item>
    </style>

...
res/drawable night/splash.xml

  <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
      <shape android:shape="rectangle">
        <solid android:color="#fff"/>
      </shape>
    </item>
    ...
  </layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="?attr/colorSurface"/>
    </shape>
  </item>
  ...
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="#000"/>
    </shape>
  </item>
  ...
</layer-list>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowBackground">@drawable/splash</item>
  </style>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowSplashscreenContent">@drawable/splash</item>
  </style>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#fff" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#000" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
    <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowBackground">@drawable/splash</item>
        <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
        <item name="android:statusBarColor" tools:targetApi="lollipop">?android:colorBackground</item>
        <item name="colorSecondary">?colorAccent</item>
        <item name="android:colorSecondary" tools:targetApi="n_mr1">?colorAccent</item>
    </style>

...
清单

  <application android:theme="@style/AppTheme_splash" ...">

res/values/themes.xml

  <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
      <shape android:shape="rectangle">
        <solid android:color="#fff"/>
      </shape>
    </item>
    ...
  </layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="?attr/colorSurface"/>
    </shape>
  </item>
  ...
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="#000"/>
    </shape>
  </item>
  ...
</layer-list>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowBackground">@drawable/splash</item>
  </style>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowSplashscreenContent">@drawable/splash</item>
  </style>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#fff" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#000" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
    <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowBackground">@drawable/splash</item>
        <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
        <item name="android:statusBarColor" tools:targetApi="lollipop">?android:colorBackground</item>
        <item name="colorSecondary">?colorAccent</item>
        <item name="android:colorSecondary" tools:targetApi="n_mr1">?colorAccent</item>
    </style>

@可牵引/飞溅
res/values-v26/themes.xml

  <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
      <shape android:shape="rectangle">
        <solid android:color="#fff"/>
      </shape>
    </item>
    ...
  </layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="?attr/colorSurface"/>
    </shape>
  </item>
  ...
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
  <item android:gravity="fill">
    <shape android:shape="rectangle">
      <solid android:color="#000"/>
    </shape>
  </item>
  ...
</layer-list>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowBackground">@drawable/splash</item>
  </style>
  <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
    <item name="android:windowSplashscreenContent">@drawable/splash</item>
  </style>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#fff" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
    android:opacity="opaque" tools:ignore="UnusedAttribute">
    <item android:gravity="fill">
        <shape android:shape="rectangle">
            <solid android:color="#000" />
        </shape>
    </item>
    <item
        android:width="48dp" android:height="48dp" android:gravity="center">
        <bitmap
            android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
    </item>
</layer-list>
    <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowBackground">@drawable/splash</item>
        <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
        <item name="android:statusBarColor" tools:targetApi="lollipop">?android:colorBackground</item>
        <item name="colorSecondary">?colorAccent</item>
        <item name="android:colorSecondary" tools:targetApi="n_mr1">?colorAccent</item>
    </style>

@可牵引/飞溅
我试图删除
android:windowBackground
android:windowSplashscreenContent
,试图查看它是否是自动的,但没有帮助

问题 基本上,我只想了解夜间模式,以及我是否可以将其用于启动屏幕:

  • Android支持这么长时间的“夜间模式”何时开始

  • 它是操作系统全局模式吗?用户控制它吗

  • 是自动的吗?还是完全由当前应用程序手动

  • 即使我通过应用程序手动设置,并且应用程序被终止,该模式是否会延迟

  • 是否可以将应用程序的主题(对启动屏幕的意义)设置为使用此选项,以便在启用夜间模式时,它将使用此选项来设置暗背景

  • 我的代码对此正确吗


  • 实际上,可以为闪屏设置夜间修改器

    不幸的是,这种情况在任何代码可以使用之前就发生了。因此,它完全基于操作系统的设置,而不是应用程序本身

    此外,IDE上还有一个恼人的问题,即对于每个活动,它将首先使用我为splash创建的主题

    除了这两个缺点之外,它还可以正常工作,你可以在我的应用程序上看到它

    在这里:

    res/drawable/splash.xml

      <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
          <shape android:shape="rectangle">
            <solid android:color="#fff"/>
          </shape>
        </item>
        ...
      </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
      <item android:gravity="fill">
        <shape android:shape="rectangle">
          <solid android:color="?attr/colorSurface"/>
        </shape>
      </item>
      ...
    </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
      <item android:gravity="fill">
        <shape android:shape="rectangle">
          <solid android:color="#000"/>
        </shape>
      </item>
      ...
    </layer-list>
    
      <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowBackground">@drawable/splash</item>
      </style>
    
      <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowSplashscreenContent">@drawable/splash</item>
      </style>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
        android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
            <shape android:shape="rectangle">
                <solid android:color="#fff" />
            </shape>
        </item>
        <item
            android:width="48dp" android:height="48dp" android:gravity="center">
            <bitmap
                android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
        </item>
    </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
        android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
            <shape android:shape="rectangle">
                <solid android:color="#000" />
            </shape>
        </item>
        <item
            android:width="48dp" android:height="48dp" android:gravity="center">
            <bitmap
                android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
        </item>
    </layer-list>
    
        <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
            <item name="android:windowBackground">@drawable/splash</item>
            <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
            <item name="android:statusBarColor" tools:targetApi="lollipop">?android:colorBackground</item>
            <item name="colorSecondary">?colorAccent</item>
            <item name="android:colorSecondary" tools:targetApi="n_mr1">?colorAccent</item>
        </style>
    
    
    
    res/drawable night/splash.xml

      <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
          <shape android:shape="rectangle">
            <solid android:color="#fff"/>
          </shape>
        </item>
        ...
      </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
      <item android:gravity="fill">
        <shape android:shape="rectangle">
          <solid android:color="?attr/colorSurface"/>
        </shape>
      </item>
      ...
    </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
      <item android:gravity="fill">
        <shape android:shape="rectangle">
          <solid android:color="#000"/>
        </shape>
      </item>
      ...
    </layer-list>
    
      <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowBackground">@drawable/splash</item>
      </style>
    
      <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowSplashscreenContent">@drawable/splash</item>
      </style>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
        android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
            <shape android:shape="rectangle">
                <solid android:color="#fff" />
            </shape>
        </item>
        <item
            android:width="48dp" android:height="48dp" android:gravity="center">
            <bitmap
                android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
        </item>
    </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
        android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
            <shape android:shape="rectangle">
                <solid android:color="#000" />
            </shape>
        </item>
        <item
            android:width="48dp" android:height="48dp" android:gravity="center">
            <bitmap
                android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
        </item>
    </layer-list>
    
        <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
            <item name="android:windowBackground">@drawable/splash</item>
            <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
            <item name="android:statusBarColor" tools:targetApi="lollipop">?android:colorBackground</item>
            <item name="colorSecondary">?colorAccent</item>
            <item name="android:colorSecondary" tools:targetApi="n_mr1">?colorAccent</item>
        </style>
    
    
    
    themes.xml

      <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
          <shape android:shape="rectangle">
            <solid android:color="#fff"/>
          </shape>
        </item>
        ...
      </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
      <item android:gravity="fill">
        <shape android:shape="rectangle">
          <solid android:color="?attr/colorSurface"/>
        </shape>
      </item>
      ...
    </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:opacity="opaque" tools:ignore="UnusedAttribute">
      <item android:gravity="fill">
        <shape android:shape="rectangle">
          <solid android:color="#000"/>
        </shape>
      </item>
      ...
    </layer-list>
    
      <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowBackground">@drawable/splash</item>
      </style>
    
      <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
        <item name="android:windowSplashscreenContent">@drawable/splash</item>
      </style>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
        android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
            <shape android:shape="rectangle">
                <solid android:color="#fff" />
            </shape>
        </item>
        <item
            android:width="48dp" android:height="48dp" android:gravity="center">
            <bitmap
                android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
        </item>
    </layer-list>
    
    <layer-list xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"
        android:opacity="opaque" tools:ignore="UnusedAttribute">
        <item android:gravity="fill">
            <shape android:shape="rectangle">
                <solid android:color="#000" />
            </shape>
        </item>
        <item
            android:width="48dp" android:height="48dp" android:gravity="center">
            <bitmap
                android:gravity="center" android:src="@mipmap/ic_launcher_foreground" />
        </item>
    </layer-list>
    
        <style name="AppTheme_splash" parent="@style/Theme.MaterialComponents.DayNight">
            <item name="android:windowBackground">@drawable/splash</item>
            <item name="android:navigationBarColor" tools:targetApi="lollipop">@android:color/transparent</item>
            <item name="android:statusBarColor" tools:targetApi="lollipop">?android:colorBackground</item>
            <item name="colorSecondary">?colorAccent</item>
            <item name="android:colorSecondary" tools:targetApi="n_mr1">?colorAccent</item>
        </style>
    
    
    @可牵引/飞溅
    @android:彩色/透明
    ?安卓:彩色背景
    ?颜色重音
    ?颜色重音
    
    清单

      <application android:theme="@style/AppTheme_splash" ...">
    

    是,该功能受支持,但您需要使用新的appCompat api,以便您的样式正常工作。要设置特定模式,您需要在每次启动时进行设置,因此如果用户更改主题,您应该保存首选项并在启动时恢复。我建议您在Application.OnCreate()中设置模式,并记住此模式不是持久化的,您需要自己持久化首选项。我忘了提到您也可以为单个活动设置它。它使用了旧的夜间资源限定符,他们只是调整了新AppCompat中的实现,使其更易于使用。此外,您的飞溅主题将尊重此模式。因为您是在应用程序启动时设置的。@Mihai您能在启动屏幕上显示它的工作示例吗?据我所知,我不能在显示之前使用任何代码,不是吗?而且,正如我所写的,这与活动无关。对于活动,已经有多个解决方案。为什么你认为它与appCompat有关?它是从Android API 8开始提供的。。。请解释一下。什么是夜间模式?正如我所写的,不要把它与安卓Q的黑暗主题混淆……安卓Q使用了旧的夜间资源限定符。在新的AppCompat中,他们改变了实现,使其在api级别上更加一致,并且更易于开发人员使用(它的实现非常笨拙,因为它是为android auto设计的)。总之,旧的夜间资源限定符被用来提供这种“新”的夜间模式。@StainlessSteelRat更新了答案。忘了这个问题:)谢谢!今晚我要试试这个!