Android主题换肤实现
本系列文章主要是對一個Material Design的APP的深度解析,主要包括以下內容
基于Material Design Support Library作為項目整體框架。對應博文:Android Material Design 兼容庫的使用詳解
RecyclerView的萬能適配器。對應博文:打造一個RecyclerView的萬能適配器-減少你的代碼冗余
高仿QQ的自定義View。對應博文:Android自定義View之高仿QQ健康
主題換膚功能。對應博文:Android主題換膚 無縫切換
效果圖
Android主題換膚
源碼解析參見
Android主題換膚 無縫切換 - 簡書
使用
在使用的時候一定要記得要Activity要去繼承于SkinBaseActivity,Fragment要繼承于SkinBaseFragment,Application要繼承于SkinBaseApplication。當然把這個框架做為你的項目依賴項肯定是必不可少的。為了Demo的簡單,這里我只使用了下面三個顏色作為可以換膚的資源,當然如果你想要使用drawable文件也是可以辦到的,前提是你一定要把這個Demo看懂。
來看一個布局文件
其中 
 xmlns:skin=”http://schemas.android.com/android/skin” 
 是我們自定義的,在SkinConfig有。 
 我們只需在有皮膚更改需求的View中加入skin:enable=”true” 就OK了。
再來看看MainActicvity的部分代碼
這里就是動態的添加有皮膚更改需求的View。
上面就介紹完了在布局文件中使用方法和在代碼中使用方法。
我們應該怎么去換膚呢?很簡單,只需調用SkinManager的load方法就可以了,把皮膚路徑傳進去就可以了,我的這個Demo為了簡單起見,沒有做在線換膚的功能,只是在本地提供了可以更換的皮膚,看到這里我相信你對怎樣在線換膚已經有想法了
最最后我們來看看怎么去開發皮膚包。其實這個是最簡單的,皮膚包實際上就是一個基本的Android項目,里面不包含類文件,只有資源文件。這里只需注意 這里的資源文件名字一定要和原項目中的相同,并且只用包含那些在皮膚更改時需要改變的那些就行了!例如我的這個Demo就只是簡單對上面的三種顏色做了簡單的切換。開發了棕色和黑色兩款皮膚,所以資源文件中只有三個color的值,開發完成之后我們需要將其打包成apk文件,為防止用戶點擊安裝,我們將其后綴改成了skin,這樣做也具有標識性。如果還是不太清楚可以直接去源碼中查看。
源代碼
代碼下載
參考鏈接
Android主題換膚 無縫切換 - 簡書
總結
以上是生活随笔為你收集整理的Android主题换肤实现的全部內容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: 你真的会用 regexp_replace
 - 下一篇: git远程分支修改名字