Android動(dòng)態(tài)換膚框架-實(shí)現(xiàn)換膚

1、換膚流程

1

2、采集流程


2

3、Android資源查找流程


3

4、采集需要換膚的控件

換膚我們需要換所有可能需要換的頁(yè)面控件,所以我們不可能在每個(gè)頁(yè)面重新findviewById,這時(shí)就需要一個(gè)方案可以在每個(gè)頁(yè)面創(chuàng)建的時(shí)候自動(dòng)獲取所有換膚的控件并實(shí)現(xiàn)換膚,這里我們使用注冊(cè)Activity生命周期回調(diào)實(shí)現(xiàn)這個(gè)需求。


4

通過(guò)昨天的換膚原理那篇文章我們可以知道,如果已經(jīng)設(shè)置了Factory,那么就會(huì)通過(guò)工廠來(lái)創(chuàng)建view,所以通過(guò)上圖4,我們自己實(shí)現(xiàn)一個(gè)工廠類SkinLayoutFactory,我們自己創(chuàng)建view,這樣我們就能得到view中的對(duì)象和需要換膚的控件,代碼如下圖。


5
6

通過(guò)上圖5、6可以看到,我們是通過(guò)自己實(shí)現(xiàn)工廠類創(chuàng)建view,創(chuàng)建view的代碼其實(shí)都是和源碼一樣的,可以看看上一篇換膚的原理。創(chuàng)建view以后,我們就能篩選出我們所需要換膚的控件,篩選代碼-“skinAttribute.load(view,attrs);”如下圖


7


8


9

以上就是完整的采集換膚控件的流程。通過(guò)圖7、8、9我們可以看到需要換膚的View和對(duì)應(yīng)的屬性都保存在了SkinAttribute的skinViews當(dāng)中。

git地址:https://github.com/huoyingfang/AndroidSkin

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容