案例来自于开源项目,文章作为自己学习记录使用
参考资料:http://blog.csdn.net/wanggang514260663/article/details/51503166
http://www.tuicool.com/articles/3emUnmM
http://blog.csdn.net/ljx19900116/article/details/41806875
一、矢量图VectorDrawable
VectorDrawable 是android针对 svg图片的使用提供的类,svg图的优点呢就是可以进行不丢失清晰度的压缩,只需要使用一套drawable即可,再也不用提供xhdip, hdip ,这么多套图了。
二、使用矢量图的准备
在Android Support Library 23.2中,官方加入了对Vector的向下版本兼容
VectorDrawable 矢量图 支持 API 7 +
AnimationVerctorDrawable矢量图动画: 支持 API 11 +
1.项目支持23.2+的support library
compile 'com.android.support:appcompat-v7:23.2.0'
2.如果gradle的版本在2.0以下
android {
defaultConfig {
// 不让gradle自动生成不同屏幕分辨率的png图
generatedDensities = []
}
aaptOptions {
additionalParameters "--no-version-vectors"
}
}
如果gradle的版本是2.0以上
android {
defaultConfig {
vectorDrawables.useSupportLibrary = true
}
}
三、生成矢量图
1.AndroidStuido提供了Vector Asset可以将svg图片转换成Vectordrawable
2.使用开源项目转换
http://a-student.github.io/SvgToVectorDrawableConverter.Web/
http://www.cnblogs.com/pangguoming/p/5698635.html
引入VectorDrawable
1.VectorDrawable的使用和正常的图片没有区别。同样可以通过xml引入,或者代码引入。
2.如果要使VectorDrawable添加动画效果,需要使用animated-vector标签。
在res中创建根节点为animated-vector的xml文件
drawable:代表引入的drawable图片
target:代表目标动画
name:对应矢量图中 path部分的名称,表示将动画作用于矢量图哪一部分
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/vector_drawable">
<target android:name="star" android:animation="@animator/star_anim" />
</animated-vector>
start_anim动画
在控件中使用app:srcCompat引入
使用代码引入