Android界面一鍵變灰開發(fā)深色適配模式編程示例
深色主題工具類
package com.example.kotlindemo.utils import android.content.Context import android.content.res.Configuration import androidx.appcompat.app.AppCompatDelegate import androidx.core.content.edit /** * author: chen * data: 2021/10/11 * des: 深色主題工具類 */ object DarkThemeUtil { private const val DATA_NAME = "DayNight" // 存儲(chǔ)深色模式狀態(tài)的文件名,自行更改 /** * 判斷是否開啟了深色模式 */ fun isDarkTheme(context: Context): Boolean { val flag = context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK return flag == Configuration.UI_MODE_NIGHT_YES } /** * 跟隨系統(tǒng)設(shè)置打開關(guān)閉深色主題 */ fun DefaultTheme() { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM) } /** * 打開深色模式 */ fun openDarkTheme() { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES) } /** * 關(guān)閉深色模式 */ fun closeDarkTheme() { AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_NO) } /** * 寫入內(nèi)存數(shù)據(jù) * 將當(dāng)前的深色模式狀態(tài)保持到內(nèi)存,下次啟動(dòng) APP 以讀取 * @param context Context * @param state 深色模式狀態(tài),true 打開狀態(tài),false 關(guān)閉狀態(tài) */ fun writeDarkThemeState(context: Context, state: Boolean) { context.getSharedPreferences(DATA_NAME, Context.MODE_PRIVATE) .edit{ putBoolean("boolean_dark_theme_state", state) } } /** * 讀取內(nèi)存數(shù)據(jù) */ fun readDarkThemeState(context: Context): Boolean { return context.getSharedPreferences(DATA_NAME, Context.MODE_PRIVATE) .getBoolean("boolean_dark_theme_state", false) } }
background_color公用背景色
下面我用color中的background_color公用背景色來展示,說白了就是不同模式下Android會(huì)自動(dòng)切換你設(shè)置好的顏色。
values/colors.xml 的代碼
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#008577</color> <color name="colorPrimaryDark">#00574B</color> <color name="colorAccent">#D81B60</color> <color name="color_000000">#000000</color> <color name="color_ffffff">#ffffff</color> <color name="color_008adb">#008adb</color> <color name="light_blue_600">#FF039BE5</color> <color name="light_blue_900">#FF01579B</color> <color name="light_blue_A200">#FF40C4FF</color> <color name="light_blue_A400">#FF00B0FF</color> <color name="black_overlay">#66000000</color> <color name="background_color">#ffffff</color> </resources>
values-night/colors.xml 的代碼
<?xml version="1.0" encoding="utf-8"?> <resources> <color name="colorPrimary">#111111</color> <color name="colorPrimaryDark">#00574B</color> <color name="colorAccent">#D81B60</color> <color name="color_000000">#000000</color> <color name="color_ffffff">#ffffff</color> <color name="color_008adb">#008adb</color> <color name="light_blue_600">#FF039BE5</color> <color name="light_blue_900">#FF01579B</color> <color name="light_blue_A200">#FF40C4FF</color> <color name="light_blue_A400">#FF00B0FF</color> <color name="black_overlay">#66000000</color> <color name="background_color">#111111</color> </resources>
在xml添加上背景色即可:
在你想要activity開啟深色主題適配即可
效果圖如下:
Android 界面一鍵變灰
java
Paint paint = new Paint(); ColorMatrix colorMatrix= new ColorMatrix(); colorMatrix.setSaturation(0); paint.setColorFilter(new ColorMatrixColorFilter(colorMatrix)); getWindow().getDecorView().setLayerType(View.LAYER_TYPE_HARDWARE, paint);
kotlin
val paint = Paint() val colorMatrix = ColorMatrix() colorMatrix.setSaturation(0F) paint.setColorFilter(ColorMatrixColorFilter(colorMatrix)) window.decorView.setLayerType(View.LAYER_TYPE_HARDWARE,paint)
以上就是Android界面一鍵變灰開發(fā)深色適配模式編程示例的詳細(xì)內(nèi)容,更多關(guān)于Android界面變灰深色適配模式的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
在Android環(huán)境下WebView中攔截所有請(qǐng)求并替換URL示例詳解
這篇文章主要介紹了在Android環(huán)境下WebView中攔截所有請(qǐng)求并替換URL示例詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-07-07Android將項(xiàng)目導(dǎo)出為L(zhǎng)ibrary并在項(xiàng)目中使用教程
這篇文章主要介紹了Android將項(xiàng)目導(dǎo)出為L(zhǎng)ibrary并在項(xiàng)目中使用教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-07-07androidx下的fragment的lazy懶加載問題詳解
這篇文章主要介紹了androidx下的fragment的lazy懶加載問題詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04詳解Kotlin Android開發(fā)中的環(huán)境配置
這篇文章主要介紹了詳解Kotlin Android開發(fā)中的環(huán)境配置的相關(guān)資料,需要的朋友可以參考下2017-06-06android startActivityForResult的使用方法介紹
android startActivityForResult的使用方法介紹,需要的朋友可以參考一下2013-05-05Android 簡(jiǎn)單服務(wù)定位器模式實(shí)現(xiàn)
這篇文章主要介紹了Android 簡(jiǎn)單服務(wù)定位器模式實(shí)現(xiàn),幫助大家更好的理解和學(xué)習(xí)使用Android,感興趣的朋友可以了解下2021-03-03詳解Android XML中引用自定義內(nèi)部類view的四個(gè)why
本篇文章主要介紹了詳解Android XML中引用自定義內(nèi)部類view,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。2016-12-12