###先简单说一下,svg格式相对于.jpg、.png具有较多优势:
1.省时间。图像与分辨率无关,收放自如,适配安卓各种机型的分辨率。
2.省空间。体积小,一般复杂图像也能在数KB搞定,图标更不在话下。
最近就遇到一件奇怪的bug,是这样的,项目都是用vsg的格式的图标导入使用,然后最近QA在测试机中发现 图标时出现锯齿状(畸形)这是矢量图啊,竟然会出现这样的情况。因为自己在模拟器中一切正常,但是QA又有截图,有点难以置信。(截图有空在上传。。。)
然后我自己也进行真机调试,结果刚运行进去的时候正常呀,然后我就点到里面有几个页面也显示了这个图标的时候,也正常,然后再返回到刚开始页面,发现图标时出现锯齿状(畸形),这还真复现了。
其实到这就不难发现,有多个地方都用到了同样的图标,而且它们的ImageView的大小我设置的不一样,刚进去的页面设置的30dp,还有的地方设置的40dp,这就可以理解为:一开始渲染成30dp的Drawable,然后有渲染成40dp的Drawable,当返回到先前的页面时,这就很好理解为什么之前SVG图标突然边缘呈锯齿状或变形,由于使用了相同的svg图标,即他们对应的是同一个资源ID,此时它的Drawable将被同步为刚刚渲染成40dp的Drawable。(其实,如果这个时候如果返回到先前页面,有刷新数据或执行ImagView.setImageResource()后它会显示正常)