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