Android和播放SVG动画
答
- 把你的SVG图像,并将其转换为VectorDrawable here
-
您下载的XML文件添加到您的项目,看看它的外观。这里有一个VectorDrawable的一个例子的旋转和路径变形动画准备:
<vector xmlns:android="http://schemas.android.com/apk/res/android" android:height="64dp" android:width="64dp" android:viewportHeight="600" android:viewportWidth="600" > <group android:name="rotationGroup" android:pivotX="300.0" android:pivotY="300.0" android:rotation="45.0" > <path android:name="v" android:fillColor="#000000" android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" /> </group>
3现在创建一个AnimatedVectorDrawable,你是指至RotationGroup和路径变形在创建VectorDrawable
<?xml version="1.0" encoding="UTF-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android" android:drawable="@drawable/vectordrawable">
<target android:name="rotationGroup" android:animation="@anim/rotation" />
<target android:name="v" android:animation="@anim/path_morph" />
</animated-vector>
4为AnimatedVectorDrawable创建两个动画:
<objectAnimator
android:duration="6000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360" />
和:
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="3000"
android:propertyName="pathData"
android:valueFrom="M300,70 l 0,-70 70,70 0,0 -70,70z"
android:valueTo="M300,70 l 0,-70 70,0 0,140 -70,0 z"
android:valueType="pathType"/>
</set>
(也可以定义这一切都在一个文件中,指的是docs here)
一种方法则启动动画是通过从视图获取绘制并运行start()
。
+0
有关于我们如何理解svg路径的教训吗?它的价值? – RoCk 2017-08-05 07:40:20
答
从Android Lollipop(API级别21)开始,可以使用AnimatedVectorDrawable来实现。
还有一些工具可以帮助生成矢量动画shapeshifter和工具变形器An Introduction to Icon Animation Techniques的作者的博客文章。
我也对此感兴趣。 – 2012-05-17 09:31:36
http://blog.sqisland.com/2014/10/first-look-at-animated-vector-drawable.html – 2017-01-06 07:10:01