SVG矢量图相比于PNG等位图,一个非常大的优点就是可以方便快速地修改图片颜色,支持ARGB四个通道的修改。IconFont也具体了这一优点,可以通过textColor修改图片颜色,当然SVG-Android库也同样实现了这一功能,可以非常方便地设置图片颜色。
也许,你还没意识到这个功能的好处,举个前段时间笔者刚刚经历的鲜活例子。
前段时间,公司APP的整体色彩风格修改,虽然就仅仅两种颜色的变更,浅绿变成深绿,橙色变成橘红色,但是会涉及到近1000张png切图,一个UI妹纸同事负责这块的修改。这完全是体力活,首先,需要把这1000张左右相关颜色的图片从2500多张切图里面挑出来,然后一张张地用PS去修改颜色,一张图片修改少则几十秒多则几分钟,1000张下来就是接近16小时。那个UI妹纸兢兢业业地连续加班3天到深夜(另外还要做业务的切图),当然,图片太多少不了漏掉或修改错的,因为我在覆盖图片的时候确实检查出了几张图。然后,隔了几天,这个UI妹纸就离职了。。。
当时,我就在想如果项目使用了SVG矢量图的话,修改图片颜色也就几行代码,分分钟钟就给全部搞定,也许那个换切图的UI就不会离职了。
废话说的有点多了,下面我们就来看下,如果给SVG-Android库对于图片颜色相关的一些强大功能吧。
SVG-Android开源库相关:
博客:http://blog.csdn.net/megatronkings/article/details/52454927
源码:https://github.com/MegatronKing/SVG-Android
1、SVG-Android如何统一管理颜色
熟悉Vector的童鞋,可能会知道Vector文件中可以使用“@color/icon_color”这种方式统一引用颜色,比如下面这种:
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:width="48dp"
android:height="48dp"
android:viewportWidth="24.0"
android:viewportHeight="24.0">
<path
android:fillColor="@color/icon_color"
android:pathData=