在开发安卓中会遇到各种各样的小图片(icon),裁剪繁琐,拉伸容易失真,png图片积累到一定量的时候,使包的体积变大,svg图与iconfiy这个第三方库可以解决以上的问题,但只试用于icon,背景图片等还需要自己进行优化;
android如何使用svg图,
下面的文章说的比较详细:Android使用矢量图
svg是xml文件一般是kb级别,占用内存小;
svg矢量图只能在api>21,android5.0以后进行使用,往前也能兼容,不过api<15就不能兼容了,textview的使用矢量图需要自己填坑;虽然如此,根据奥卡姆剃刀原理,安卓原生api中提供了大量的矢量图可以使用,如果对风格要求不严,直接可以在img标签下引用原生的drawable矢量图.国内外的icon网站基本都有svg图下载,代码转换一下就可以直接使用了.
根据个人使用svg经验,一般从资源网站下载的很小不超过kb级的小图片,ps一下直接能用的,就没必要使用svg跟iconfiy了,svg需要各种适配各种转换各种坑,而且文件大小不一定比png小,iconfiy虽然体积小,但毕竟多引入了一个包,一个包的大小至少200k以上。
iconfiy的使用思路是用自定义的textview代替imgview,所以体积会更小:
dependencies {
compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.2.2' // (v4.5)
//以上的资源足够用,下面的不同的库基本可以不用,有特殊需要再依赖也行,具体的图片资源的搜索,在下文会
//专门列出
compile 'com.joanzapata.iconify:android-iconify-entypo:2.2.2' // (v3,2015)
comp