-
!!!查看全部
-
在skin包下面新建一个包config,然后新建一个类Const查看全部
-
然后让我们实际上需要使用的Activity去继承BaseSkinActivity,这样的话我们将所需要写的一些代码写在BaseSkinActivity的onCreatView方法里面即可。查看全部
-
!!!查看全部
-
!!!在该包下面新建一个类查看全部
-
新建一个包查看全部
-
***现在需要做的就是去获得每个Activity它在加载contentview的时候,我们需要获取到所有以skin_开头的属性所对应的view skinAttr:表示需要换肤的属性 resname:表示资源的名字,我们需要通过这个名字去获取插件包里面的资源 SkinAttrType:类型,根据不同的类型去执行不同的操作,如background、color、src等等 **我们需要一个方法把Activity转换成List<SkinView>这么一个集合的对象,然后这里面所有的SkinView都是需要去换肤的。 也就是说我们接下来要涉及到三个类:SkinView、SkinAttr、SkinAttrType查看全部
-
***如何去捕获需要换肤的那些控件。 1)首先明确你的换肤所涉及到的那些属性都是些什么? 2)然后在我们可以在属性值上面做一些文章,如何是skin开头的属性值的话,我们则认为其需要换肤。 3)对于我们换肤支持的那些属性进行排查,其属性值是否以skin_开头,如果是以skin_开头,则认为你这个view的 这个属性是需要去换肤的,然后再将该属性后面的值去替换成插件包里面的资源查看全部
-
打印出的log.可以看到通过上述方法能够获取到属性的名字和属性的值查看全部
-
!!!查看全部
-
!!!查看全部
-
!!!查看全部
-
!!捕获到TextView,然后悄悄的让它变成了Editext查看全部
-
可以看到TextView变成了Editext。可以进行输入。 ***setFactory()方法是如何做到这一点的呢? 1)要清楚android当中UI界面、所以的布局文件到view的产生,是与LayoutInflater息息相关的。 2)那么LayoutInflater又是如何做到的呢?--打开它的源码,查看它的一个方法:creatViewFromTag(),从中可以知道它是通过Tag的name 去创建一个view查看全部
-
触发TestFactoryActivity查看全部
举报
0/150
提交
取消