Android高级动画所有代码
一、简介:vectordrawable允许你基于xml创建一个矢量图形。在API21时第一次发布。
二、优点:1、体积小;2、一个图片适配所有屏幕;3、可以实现非常优美的动画效果;4、svg格式的图片可以转化为vectordrawable。
阿里的矢量图分享网站:iconfont.cn
三、兼容性:使用Gradle 1.5+和AppCompat23.2+,可以支持Android3.0+的动态和静态VectorDrawable。
四、通过创建一个简单的动态vectordrawable动画讲解使用方法
1、兼容性配置:
注意gradle的版本最好是在2.1以上。
[1]、在app/build.gradle中配置:
android {
compileSdkVersion 23
buildToolsVersion "23.0.3"
defaultConfig {
......
vectorDrawables.useSupportLibrary=true
}
}
dependencies {
...
compile 'com.android.support:appcompat-v7:23.4.0'
}
2、在res/drawable中创建一个vectordrawable,命名为rect_vector.xml:
android:width——drawable的固定宽度
android:height——drawblae的固定高度
android:viewportWidth——viewport的宽度,viewport是画布上的基本单位,画布的宽度被分为多少格。
android:viewportHeight——viewport的高度,viewport是画布上的基本单位,画布的高度被分为多少格。
android:pathData中的数据讲解:M=MoveTo(M X,Y)将画线移动到指定坐标位置;
L=LineTo(L X,Y)画直线到指定的坐标位置;
z=ClosePath()关闭路径。
3、在res/animator中创建一个属性动画,这个属性动画会让对象从黑色变化为浅绿色,命名为:changecolor.xml。
在这里面可以设置很多属性动画,比如:
位移动画(需要把vectordrawable中的path用group标签包裹起来,rotation、pivot、scale、translate的动画都需要用group标签包裹)
4、使用animated-vector连接vectordrawable和属性动画,命名为change_color.xml:
5、在布局文件中引入:
6、点击启动动画:
public void imageAnim(View view){
ImageView imageView=(ImageView)view;
Drawable drawableColor = imageView.getDrawable();
if (drawableColor instanceof Animatable) {
((Animatable) drawableColor).start();
}
}
这样我们就创建了一个简单的属性动画。
参考:
https://developer.android.com/reference/android/graphics/drawable/VectorDrawable.html
https://developer.android.com/reference/android/graphics/drawable/AnimatedVectorDrawable.html