日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 运维知识 > Android >内容正文

Android

android support library github,Android Support Library 之 夜间模式

發(fā)布時(shí)間:2024/7/23 Android 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 android support library github,Android Support Library 之 夜间模式 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

原標(biāo)題:Android Support Library 之 夜間模式

前言

夜間模式實(shí)現(xiàn)方式:1、通過(guò)切換theme來(lái)實(shí)現(xiàn)夜間模式。優(yōu)點(diǎn):可以匹配多套主題,并不局限于黑白模式缺點(diǎn):需要大量定義主題詳見(jiàn)博客:http://wuxiaolong.me/2015/08/19/ChangeTheme/

2、通過(guò)修改uiMode來(lái)切換夜間模式。修改uimode是修改Configuration,這種主題切換只限于黑白模式,沒(méi)有其他模式,不需要大量定義主題,即本文介紹的內(nèi)容。

效果預(yù)覽

如何使用

第一步

(1)app/build.gradle

compile'com.android.support:appcompat-v7:25.3.1'

(2)Activity須繼承AppCompatActivity

(3)Theme.AppCompat.DayNight

@color/colorPrimary

@color/colorPrimaryDark

@color/colorAccent

false

true

第二步

應(yīng)用全局主題推薦在 Application 的onCreate()中進(jìn)行設(shè)置AppCompatDelegate.setDefaultNightMode(int mode);

它有四個(gè)可選值,分別是:MODE_NIGHT_NO: 使用亮色(light)主題,不使用夜間模式MODE_NIGHT_YES:使用暗色(dark)主題,使用夜間模式MODE_NIGHT_AUTO:根據(jù)當(dāng)前時(shí)間自動(dòng)切換 亮色(light)/暗色(dark)主題MODE_NIGHT_FOLLOW_SYSTEM(默認(rèn)選項(xiàng)):設(shè)置為跟隨系統(tǒng),通常為 MODE_NIGHT_NO

第三步

動(dòng)態(tài)的設(shè)定主題,需要切換主題調(diào)用:

AppCompatDelegate.setDefaultNightMode(AppCompatDelegate.MODE_NIGHT_YES);

//調(diào)用recreate()使設(shè)置生效

recreate();

注意事項(xiàng)

setDefaultNightMode()與setLocalNightMode()區(qū)別

AppCompatDelegate.setDefaultNightMode()是對(duì)整個(gè)App中theme為DayNight主題生效getDelegate().setLocalNightMode()只對(duì)特定的組件生效

夜間資源

把夜晚主題的color等資源放在values-night中,程序在運(yùn)行時(shí)就會(huì)自動(dòng)調(diào)用

獲取應(yīng)用當(dāng)前的主題

intcurrentNightMode=getResources().getConfiguration().uiMode

&Configuration.UI_MODE_NIGHT_MASK;

switch(currentNightMode){

caseConfiguration.UI_MODE_NIGHT_NO:

// Night mode is not active, we're in day time

caseConfiguration.UI_MODE_NIGHT_YES:

// Night mode is active, we're at night!

caseConfiguration.UI_MODE_NIGHT_UNDEFINED:

// We don't know what mode we're in, assume notnight

}

如果切換了主題,本想通過(guò)這個(gè)方法,下次啟動(dòng)程序的時(shí)候,來(lái)設(shè)置。發(fā)現(xiàn)并沒(méi)有記住這個(gè)值,還是只能SharedPreference讀取,然后根據(jù)用戶設(shè)置,調(diào)用 setDefaultNightMode() 方法。

適配文字圖片

盡可能的使用主題屬性(theme attributes)

文字顏色

android:textColor="?android:attr/textColorPrimary"

android:textColor="?android:textColorPrimary"

系統(tǒng)默認(rèn)的文字顏色。在亮色(light)主題下,顏色接近黑色,在暗色(dark)主題下,顏色接近白色。有兩種寫(xiě)法,次標(biāo)題和三標(biāo)題同樣。

次標(biāo)題

android:textColor="?android:attr/textColorSecondary"

三標(biāo)題

android:textColor="?android:attr/textColorTertiary"

系統(tǒng)默認(rèn)的背景顏色

android:background="?android:attr/colorBackground"

android:background="?android:colorBackground"

點(diǎn)擊效果

android:background="?android:attr/selectableItemBackground"

android:background="?android:selectableItemBackground"

android:background="?attr/selectableItemBackground"

系統(tǒng)默認(rèn)的圖標(biāo)顏色

如vector里顏色:

android:fillColor="?attr/colorControlNormal"

源碼地址

https://github.com/WuXiaolong/DesignSupportLibrarySample

iOS 用戶贊賞通道,謝謝支持

責(zé)任編輯:

總結(jié)

以上是生活随笔為你收集整理的android support library github,Android Support Library 之 夜间模式的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。