android白色暗色主题,使用Kotlin开发Android应用(12) - Dark theme 暗色主题
Dark theme 暗色主題
樣式和主題
樣式是一個屬性集合,用于指定單個 View 的外觀。 樣式可以指定字體顏色、字號、背景顏色等屬性。
主題背景是一種應用于整個應用、Activity 或視圖層次結構的樣式,而不僅僅應用于單個視圖。
在項目的 res/values/styles.xml 文件,創建需要的樣式
#00FF00
使用 parent 屬性指定要擴展的樣式
創建主題背景, 像創建樣式一樣
@color/colorPrimary
@color/colorPrimaryDark
@color/colorAccent
將深色”主題背景應用于整個應用:
對 AndroidManifest.xml 文件中的 標簽或 標簽應用具有 android:theme 屬性的主題背景
樣式層次結構
如果您在多個位置指定了相同的屬性,下面的列表決定了最終將應用哪些屬性。該列表從最高優先級到最低優先級排序:
通過文本 span 將字符或段落級樣式應用到 TextView 派生類
以編程方式應用屬性
將單獨的屬性直接應用到 View
將樣式應用到 View
默認樣式
將主題背景應用于 View、Activity 或您的整個應用
應用某些特定于 View 的樣式,例如在 TextView 上設置 TextAppearance
深色主題背景
Android 10 (API 級別 29) 及更高版本中提供深色主題背景
更改應用內主題背景
當應用在搭載 Android 9 或更低版本的設備上運行時,推薦的主題背景選項是:
淺色
深色
由省電模式設置(推薦的默認選項)
在 Android 10 (API 級別 29) 及更高版本上運行時,推薦的選項有所不同,目的是允許用戶替換系統默認設置:
淺色
深色
系統默認(推薦的默認選項)
請注意,如果用戶選擇“Light”,省電模式不會更改該設置。
每個選項直接映射到以下某個 AppCompat.DayNight 模式:
淺色 - MODE_NIGHT_NO
深色 - MODE_NIGHT_YES
由省電模式設置 - MODE_NIGHT_AUTO_BATTERY
系統默認 - MODE_NIGHT_FOLLOW_SYSTEM
如要切換主題背景,請調用 AppCompatDelegate.setDefaultNightMode()。
響應主題背景的更改
每個 Activity 都可以處理 uiMode 配置變更,以自行處理深色主題背景
android:name=".MyActivity"
android:configChanges="uiMode" />
系統會在出現主題背景變更時調用該 Activity 的 onConfigurationChanged() 方法
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig);
val currentNightMode = configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK
when (currentNightMode) {
Configuration.UI_MODE_NIGHT_NO -> {} // Night mode is not active, we're using the light theme
Configuration.UI_MODE_NIGHT_YES -> {} // Night mode is active, we're using dark theme
}
}
Reference 參考
其他文章
總結
以上是生活随笔為你收集整理的android白色暗色主题,使用Kotlin开发Android应用(12) - Dark theme 暗色主题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【python爬虫笔记】验证码
- 下一篇: 监控工具普罗米修斯(Prometheus