课程/Android/移动开发
Android-实用的App换肤功能
-
-
聚力创想技术部
2017-07-28
- LayoutInflaterCompat.setFactory方法可以控制在布局文件标签的View的生成.
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- ***如何去捕获需要换肤的那些控件。
1)首先明确你的换肤所涉及到的那些属性都是些什么?
2)然后在我们可以在属性值上面做一些文章,如何是skin开头的属性值的话,我们则认为其需要换肤。
3)对于我们换肤支持的那些属性进行排查,其属性值是否以skin_开头,如果是以skin_开头,则认为你这个view的
这个属性是需要去换肤的,然后再将该属性后面的值去替换成插件包里面的资源
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 打印出的log.可以看到通过上述方法能够获取到属性的名字和属性的值
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!捕获到TextView,然后悄悄的让它变成了Editext
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 可以看到TextView变成了Editext。可以进行输入。
***setFactory()方法是如何做到这一点的呢?
1)要清楚android当中UI界面、所以的布局文件到view的产生,是与LayoutInflater息息相关的。
2)那么LayoutInflater又是如何做到的呢?--打开它的源码,查看它的一个方法:creatViewFromTag(),从中可以知道它是通过Tag的name
去创建一个view
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 触发TestFactoryActivity
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- !!!
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 新建一个空的Activity
-
截图
0赞 · 0采集
-
-
最後的最後_
2017-04-22
- 现在需要解决第二个问题。也就是我们如何去拿到需要换肤的那些控件的集合。
-
截图
0赞 · 0采集