アプリのNight Modeの切り替え(方法:AppCompatDelegate)

投稿日:  更新日:

アプリを対象としたNight Modeの切り替えは、AppCompatDelegateとUiModeManagerで行う方法がります。

ここでは、AppCompatDelegateを使った方法を説明します。

※Night Modeの切り替えの全体像は「Dark ThemeとNight Modeの関係」を参照

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.appcompat:appcompat 1.6.1
続きを読む

アプリのNight Modeの切り替え(方法:UiModeManager、API≧31)

投稿日:  更新日:

アプリを対象としたNight Modeの切り替えは、AppCompatDelegateとUiModeManagerで行う方法がります。

ここでは、UiModeManagerを使った方法を説明します。

※Night Modeの切り替えの全体像は「Dark ThemeとNight Modeの関係」を参照

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.5.0
続きを読む

システムのNight Modeの切り替え(方法:UiModeManager、API<29)

投稿日:  更新日:

システムを対象としたNight Modeの切り替えは、SettingsアプリとUiModeManagerで行う方法がります。

ここでは、UiModeManagerを使った方法を説明します。

※Night Modeの切り替えの全体像は「Dark ThemeとNight Modeの関係」を参照

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.5.0
続きを読む

システムのNight Modeの切り替え(方法:Settingsアプリ、API≧29)

投稿日:  更新日:

システムを対象としたNight Modeの切り替えは、SettingsアプリとUiModeManagerで行う方法がります。

ここでは、Settingsアプリを使った方法を説明します。

※Night Modeの切り替えの全体像は「Dark ThemeとNight Modeの関係」を参照

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.5.0
    Emulator 35.1.4-11672324
続きを読む

Dark ThemeとNight Modeの関係

投稿日:  更新日:

Android端末は自身の置かれている状況を認識して、ユーザーが使い易いように動作を変える仕組みを持ちます。

uiModeのNight(UI_MODE_NIGHT_YES:夜である)とDay(UI_MODE_NIGHT_NO:昼である) は、その「置かれている状況」の一つです。

NightとDayは古くから定義されているモードです。

API29で追加された機能の「Dark Theme」と結びついて、Night Modeの時はDark Themeにする使い方が定番になってしまいました。

その影響でしょうか…

Settingsアプリを見ると、Night Modeの影が薄れて、「Drak Themeにする・しない」が主題に作られています。

しかし、裏にNight Modeが存在していることを忘れてはいけません。

※環境:Android Studio Jellyfish | 2023.3.1
    Kotlin 1.9.0
    Compose Compiler 1.5.1
    androidx.compose.foundation:foundation 1.5.0
続きを読む