-
!!!查看全部
-
在skin包下面新建一個(gè)包c(diǎn)onfig,然后新建一個(gè)類Const查看全部
-
然后讓我們實(shí)際上需要使用的Activity去繼承BaseSkinActivity,這樣的話我們將所需要寫的一些代碼寫在BaseSkinActivity的onCreatView方法里面即可。查看全部
-
!!!查看全部
-
?。。≡谠摪旅嫘陆ㄒ粋€(gè)類查看全部
-
新建一個(gè)包查看全部
-
***現(xiàn)在需要做的就是去獲得每個(gè)Activity它在加載contentview的時(shí)候,我們需要獲取到所有以skin_開頭的屬性所對應(yīng)的view skinAttr:表示需要換膚的屬性 resname:表示資源的名字,我們需要通過這個(gè)名字去獲取插件包里面的資源 SkinAttrType:類型,根據(jù)不同的類型去執(zhí)行不同的操作,如background、color、src等等 **我們需要一個(gè)方法把Activity轉(zhuǎn)換成List<SkinView>這么一個(gè)集合的對象,然后這里面所有的SkinView都是需要去換膚的。 也就是說我們接下來要涉及到三個(gè)類:SkinView、SkinAttr、SkinAttrType查看全部
-
***如何去捕獲需要換膚的那些控件。 1)首先明確你的換膚所涉及到的那些屬性都是些什么? 2)然后在我們可以在屬性值上面做一些文章,如何是skin開頭的屬性值的話,我們則認(rèn)為其需要換膚。 3)對于我們換膚支持的那些屬性進(jìn)行排查,其屬性值是否以skin_開頭,如果是以skin_開頭,則認(rèn)為你這個(gè)view的 這個(gè)屬性是需要去換膚的,然后再將該屬性后面的值去替換成插件包里面的資源查看全部
-
打印出的log.可以看到通過上述方法能夠獲取到屬性的名字和屬性的值查看全部
-
!!!查看全部
-
!!!查看全部
-
!!!查看全部
-
!!捕獲到TextView,然后悄悄的讓它變成了Editext查看全部
-
可以看到TextView變成了Editext??梢赃M(jìn)行輸入。 ***setFactory()方法是如何做到這一點(diǎn)的呢? 1)要清楚android當(dāng)中UI界面、所以的布局文件到view的產(chǎn)生,是與LayoutInflater息息相關(guān)的。 2)那么LayoutInflater又是如何做到的呢?--打開它的源碼,查看它的一個(gè)方法:creatViewFromTag(),從中可以知道它是通過Tag的name 去創(chuàng)建一個(gè)view查看全部
-
觸發(fā)TestFactoryActivity查看全部
舉報(bào)
0/150
提交
取消