前言
Google 在 Android 10 中加入了深色主題背景,媽媽再也不用擔心我晚上玩手機變成瞎子了:
-
減少耗電量(個人感覺這個然并卵,除非你的手機很牛逼)
-
對強光比較敏感的用戶提高了可視性黄选,不再需要湊在眼前把手機屏幕調(diào)到最暗!:鹨啊聘鳞!
-
在伸手不見五指的地方不怕被閃瞎眼了
擼碼
一、創(chuàng)建目錄
當你開啟深色模式時锹雏,Android 會自己在資源目錄下查找深色模式所需的資源巴比,所以你需要創(chuàng)建文件夾(xxxx-night)存放深色模式資源。不要問我為什么創(chuàng)建=缸瘛G峤省!
- 創(chuàng)建 values-night 根據(jù)自己的需求將 values 下 xml 文件 copy 到 values-night 中佣耐。
- 看需求創(chuàng)建 drawable-night 和 drawable-night-xxhdpi政勃。
二、創(chuàng)建資源文件
在開發(fā)過程中有兩個常用的 colors.xml 和 styles.xml兼砖。如果你不知道這兩個玩意是什么東西我建議你點擊右上角的小叉奸远。
- 在 values-night 下創(chuàng)建 colors.xml既棺、styles.xml,至于其他的你看完我說的這兩個就會了懒叛。
- 在 values/colors.xml 將內(nèi)容copy到 values-night/colors.xml 然后讓你家設計師給你深色模式下的設計圖然后你就可以慢慢的修改顏色了
丸冕。
表達不清楚,直接上圖QE种颉!
如果你還是看不懂的話... 真的打擾了呢,,, -
values/styles.xml 同上拆檬,不多bb直接上圖洪己。
三、Shape適配深色模式
適配 Shape 深色模式是非常簡單的竟贯,在 drawable 中正常創(chuàng)建 shape 文件就可以答捕,你只需要注意 shape 所需顏色是否在 values/colors.xml 和 values-night/colors.xml 中存在。
效果:
四屑那、自定義控件適配深色
為了避免重復的 shape 創(chuàng)建拱镐,我都會寫自定義一個控件來動態(tài)設置 shape 值,這個不多說持际,懂的人自然懂沃琅,不懂得就去 Google 一下。
這里演示自定義Button蜘欲。
在 values/attrs.xml 中創(chuàng)建自定義屬性益眉,比如我 Button 用到的就是圓角、邊框顏色姥份、邊框?qū)挾裙?Button 的 enabled 為 false 時候的顏色,這里的步驟和正常 自定義View 一樣澈歉,直接下一步展鸡。
效果: