界面換膚的兩種實(shí)現(xiàn)方式
1.主題切換模式
- 創(chuàng)建兩種主題模式
- 自定義屬性
- 應(yīng)用樣式,通過(guò)
?attr/
去引用樣式 - 切換主題:通過(guò)
activity.setTheme
設(shè)置主題,調(diào)用activity.recreate()
來(lái)重建界面達(dá)到舊界面的更新
詳情參考黑白主題的切換
關(guān)于主題的介結(jié)可以參考 總結(jié)一下Android中主題(Theme)的正確玩法
2.通過(guò)插件化方式動(dòng)態(tài)加載apk
- 通過(guò)AssetManager买猖,通過(guò)反射以及PackageName,獲取到下載下來(lái)皮膚包的Resource候引,然后就可以拿到res下面的任何資源文件
- 自定義LayoutInflator.Factory权谁,生成View的同時(shí)通過(guò)屬性把需要換膚的控件及屬性記錄下來(lái)。
- 實(shí)現(xiàn)換膚方法贴谎,通過(guò)Factory緩存的記錄動(dòng)態(tài)設(shè)置新屬性值達(dá)到換膚效果
開(kāi)源項(xiàng)目可參照Android-Skin-Loader汞扎。