Android實現換膚功能(二)

前兩天寫的上章關於換膚的功能得到了很好的反響,今天爲你們介紹另外一種方式。今天實現的策略也是網友建議的,而後我本身去寫了個demo,你們本身評估下相比第一種方式的優點和劣勢在哪裏。android

簡單介紹下關於第一種關於換膚實現的方法一些不友好的地方,好比點擊了換膚的功能鍵,須要先下載一個資源apk,而後再去引用其中的資源ID,於用戶使用起來確實有有不少不便之處。今天爲你們介紹的方法是克服了這一弊端的,能夠實現直接在應用內切換,把資源文件存儲在本地apk的,讀取和操做也是更加便捷的,下面介紹下大體的一個實現邏輯。git

通常實現換膚的功能有這麼幾點:一是圖片資源的替換;二是文字顏色、大小、文字內容的更改。本次實現的策略都是基於asserts目錄去實現的,假設有兩套皮膚能夠更換,咱們須要在asserts文件夾下新建對應兩套皮膚的目錄,而他們其中擁有相同名稱的資源(包括圖片資源和properties文件)。使用第一套皮膚的話就調用第一目錄下的全部資源,調用第二套皮膚的話就使用另外一目錄下的資源。因爲引用asserts下的資源不須要像res資源同樣,而是須要經過AssertManager調用對應的資源路徑就能夠實現,因此實現起來相對R文件會稍稍麻煩麻煩一點。關於文字顏色等的屬性的變化都是統一保存在properties裏面,須要調用的話也只是調用Properties中屬性值就能夠了,很是簡單方便。下面爲你們演示下簡單的使用。github

1、關於圖片資源的引用微信

 


通常加載圖片會經過兩種方式去實現,一是Bitmap,二是Drawable。這裏也都有了其實現的方法。.net

2、關於TextView屬性值的加載圖片

 

加載TextView屬性值以前,記得必定要先初始化Properties,全部的屬性值都是在properties中。資源

3、使用get

點擊按鈕切換皮膚內容。源碼

今天的文章比較短,你們若有好的想法或者其餘換膚好的實現,請私信我,我會在下面幾天整理後繼續爲你們介紹。it

源碼地址:https://github.com/JackCho/SkinChangeDemo2

若是以爲對你有所幫助,歡迎你們訂閱個人微信公衆帳號——Android乾貨分享(ID:android_share)。下面是微信的二維碼,爲你提供及時高質的Android乾貨。技術交流QQ羣:318588906,歡迎你們加羣,共同探討下Android和Java技術,一塊兒壯大咱們的微信乾貨分享社區。

相關文章
相關標籤/搜索