点击上方蓝字,关注高德技术!
1.
导读
关于应用的主题定制,相信大家或多或少都有接触,基本上,实现思路可以分为两类:
内置主题(应用内自定义style)
外部加载方式(资源apk形式、压缩资源、插件等)
其实,针对不同的主题定制实现思路,没有绝对的好坏,每种实现方案都有其利弊,重要的是如何去权衡、选择,根据实际的项目需求,痛点,制定一个符合实际项目需求,能够解决主题定制过程中痛点的方案才是好的方案。
由于我和团队一直是做车载导航应用开发,面向的对象是客户。不同的客户对于应用的UI或者主题是有不同需求的,也就是说针对不同客户,不同渠道的版本,需要有不同的应用主题。
随着项目的增多,如果没有一个灵活,易管理,低成本的主题定制方案,那么实现将变得非常困难。
2.
过去主题定制的实现方案
针对需要定制的UI,研发增加对应的自定义主题控件;
布局由这些自定义主题控件搭建而成;
UED修改对应主题控件xml中对应的色值实现主题的定制;
研发集成UED配置的文件,实现主题定制;
研发出包,UED进行主题定制还原度验证。
基本思路就是界面中需要主题定制的UI,通过自定义主题控件实现,而自定义主题控件可以通过替换布局xml的方式实现主题色值等的替换,从而实现主题定制,但这种方案的缺点非常明显: