在 Android 中设置夜间模式,你需要创建一个名为?values-night
?的资源文件夹,并在这个文件夹下放置一个与?values
?文件夹中的样式文件相对应的主题配置文件。这样系统会根据设备的当前模式(日间或夜间)自动选择合适的主题。
以下是如何设置夜间模式主题的基本步骤:
创建 values-night 文件夹: 在项目的?res
?目录下,创建一个新文件夹命名为?values-night
。
定义夜间主题样式: 在?values-night
?文件夹内创建一个新的?styles.xml
?文件,或者如果你已经有全局的?styles.xml
,那么复制一份到这个新的文件夹内并修改其内容以适应夜间模式。
例如,在?values-night/styles.xml
?中,你可以定义如下夜间主题:
<resources>
<style name="AppTheme" parent="Theme.AppCompat.DayNight">
<!-- 设置夜间模式下的主要颜色 -->
<item name="colorPrimary">@color/night_primary</item>
<item name="colorPrimaryVariant">@color/night_primary_variant</item>
<item name="colorOnPrimary">@color/night_on_primary</item>
<!-- 设置状态栏颜色 -->
<item name="colorPrimaryDark">@color/night_status_bar</item>
<!-- 设置背景颜色、文本颜色等 -->
<item name="android:windowBackground">@color/night_window_background</item>
<item name="android:textColorPrimary">@color/night_text_primary</item>
<!-- 其他你想要改变的属性... -->
</style>
</resources>
这里,@color/night_*
?是你在?colors.xml
?文件中定义的夜间模式下的颜色资源。
定义颜色资源: 同样在?values-night
?文件夹下创建?colors.xml
?文件,定义用于夜间模式的颜色资源。
在 Manifest 文件中应用主题: 如果你希望整个应用支持夜间模式,那么在?AndroidManifest.xml
?文件中对?<application>
?或单个?<activity>
?标签应用上面定义的夜间模式主题:
<application
android:name=".YourApplication"
android:icon="@mipmap/ic_launcher"
android:roundIcon="@mipmap/ic_launcher_round"
android:theme="@style/AppTheme">
<!-- ... activities 和 services 等组件 ... -->
</application>
这样,当用户开启系统的夜间模式时,Android 系统会自动切换到你在?values-night
?文件夹下定义的主题样式,从而实现应用的夜间模式。