从5.0(api等级21)开始,android开始支持矢量图了。关于什么是矢量图以及矢量图有什么优缺点不在本文的涉及范围之内,具体可以参考矢量图百科。不过这里要提一下它的优点:
保存最少的信息,文件大小比位图要小,并且文件大小与物体的大小无关任意放大矢量图形,不会丢失细节或影响清晰度,因为矢量图形是与分辨率无关的。
从以上两个优点来看,在项目中使用矢量图至少可以缩小我们apk包的尺寸,而且可以在屏幕适配时提供很大的方便,因为矢量图是分辨率无关的。
前面也说了,矢量图从21才开始支持。那么如果我想往下兼容改怎么办呢?这个问题要放在以前的话,我会说github下就有你要的答案。但现在我不会这么说,因为前段时间google升级了support library,官方向后兼容了矢量图的使用。要问兼容到哪个版本,我告诉你矢量图兼容到api7,矢量图动画兼容到api11(是不是已经满足了你的使用)。
好了,下面我们就来说说怎么在项目中使用矢量图。
一、vectordrawable的使用按照官方的说法,要在低版本上使用矢量图,需要在项目中引入新的兼容库support-vector-drawable,并且appcompat-v7库的版本要在23.2.0+(写文章这会23.2.1已经发布了)。而且你还要修改下gradle的相关配置,不要让gradle在构建的时候为你在低版本(api21以下)的情况下生成针对于不同密度的png文件,因为android studio1.4的时候支持了矢量图。
修改appcompat-v7的版本
compile 'com.android.support:appcompat-v7:23.2.0'note: 这里我只引入了23.2.0版本的appcompat-v7库,同步gradle后就编译出了support-vector-drawable-23.2.0和animated-vector-drawable-23.2.0这两个库。
修改gradle配置文件
如果你的gradle插件的版本为2.0以下,你应该这么修改
android {
defaultconfig {
// 不让gradle自动生成不同屏幕分辨率的png图
generateddensities = []
}
aaptoptions {
additionalparameters "--no-version-vectors"
}
}
如果你的gradle插件版本是2.0+,你 应该这么修改
android {
defaultconfig {
vectordrawables.usesupportlibrary = true
}
}
经过上面这几步的修改,你就可以在项目中使用矢量图了。那么,下面我们就正式来说说怎么使用。
andro