使用了github上開源庫ChangeSkin,原作者h(yuǎn)ongyang.
開源庫地址:ChangeSkin
注意事項
1.讓所有需要換膚的界面的Activity繼承framework層中base包下BaseChangeSkinActivity
2.對于需要換膚的資源命名使用skin開頭
比如某個控件的
背景需要換膚:
字體顏色:
3.應(yīng)用內(nèi)換膚,應(yīng)用內(nèi)有多套資源。
比如背景圖叫做:skin_main_bg 可以準(zhǔn)備一套皮膚資源,命名為skin_main_bg_后綴
后綴名根據(jù)換膚風(fēng)格統(tǒng)一定義,比如綠色風(fēng)格“skin_main_bg_green”.同理控件的字體顏色
普通風(fēng)格是“skin_item_text_color”綠色風(fēng)格為“skin_item_text_color_green”
4.插件式換膚
準(zhǔn)備資源apk,按相同規(guī)則定義下資源名稱。僅僅是普通的項目,準(zhǔn)備需要包含用到的資源即可。
5.調(diào)用換膚API
應(yīng)用內(nèi)換膚直接調(diào)用BaseChangeSkinActivity的setSkinStyle方法即可。此處前兩個參數(shù)是控制
狀態(tài)欄顏色的參數(shù),到時具體看需求,需要什么顏色值在傳入即可。
插件式換膚直接調(diào)用BaseChangeSkinActivity的setSkinStyleWithSDCard方法即可記得傳入
對應(yīng)的apk資源路徑和資源包名即可。
設(shè)置回默認(rèn)皮膚直接調(diào)用BaseChangeSkinActivity的setDefaultSkin()傳入?yún)?shù)為true即可
6.Toolbar兼容適配問題
解決思路在ToolBar中自定義需要的布局,自定義布局中的控件資源命名方式在上述規(guī)則來即可
記得設(shè)置contentInsetLeft和contentInsetStat 的值為0保證自定義布局鋪滿Toolbar.
因為沒有接到項目中,如有其他問題具體討論。附帶可能出現(xiàn)的問題參考連接