1拉庶、換膚流程
2、采集流程
3秃励、Android資源查找流程
4氏仗、采集需要換膚的控件
換膚我們需要換所有可能需要換的頁面控件,所以我們不可能在每個(gè)頁面重新findviewById夺鲜,這時(shí)就需要一個(gè)方案可以在每個(gè)頁面創(chuàng)建的時(shí)候自動(dòng)獲取所有換膚的控件并實(shí)現(xiàn)換膚皆尔,這里我們使用注冊(cè)Activity生命周期回調(diào)實(shí)現(xiàn)這個(gè)需求。
通過昨天的換膚原理那篇文章我們可以知道币励,如果已經(jīng)設(shè)置了Factory慷蠕,那么就會(huì)通過工廠來創(chuàng)建view,所以通過上圖4食呻,我們自己實(shí)現(xiàn)一個(gè)工廠類SkinLayoutFactory流炕,我們自己創(chuàng)建view,這樣我們就能得到view中的對(duì)象和需要換膚的控件仅胞,代碼如下圖每辟。
通過上圖5、6可以看到干旧,我們是通過自己實(shí)現(xiàn)工廠類創(chuàng)建view渠欺,創(chuàng)建view的代碼其實(shí)都是和源碼一樣的,可以看看上一篇換膚的原理椎眯。創(chuàng)建view以后挠将,我們就能篩選出我們所需要換膚的控件,篩選代碼-“skinAttribute.load(view,attrs);”如下圖
以上就是完整的采集換膚控件的流程盅视。通過圖7捐名、8、9我們可以看到需要換膚的View和對(duì)應(yīng)的屬性都保存在了SkinAttribute的skinViews當(dāng)中闹击。