Dav*_*oon 2 animation android vector android-studio android-vectordrawable
我想知道是否可以在Android中创建两个矢量drawable,并从第一个矢量自动动画它第二个.
你有一个可绘制的向量(@ drawable/vector.xml):
<?xml version="1.0" encoding="utf-8"?>
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:viewportWidth="170"
android:viewportHeight="170"
android:width="500dp"
android:height="500dp">
<path
android:name="my_vector_path"
android:fillColor="#FF000000"
android:pathData="M85,40
c10,0 20,0 30,0
c0,-5 -10,-20 -30,-20
c-20,0 -30,15 -30,20
c10,0 20,0 30,0"
/>
</vector>
Run Code Online (Sandbox Code Playgroud)
创建一个动画矢量(@ drawable/animated_vector.xml):
<?xml version="1.0" encoding="utf-8"?>
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/vector" >
<target
android:name="my_vector_path"
android:animation="@anim/vector_animation"
/>
</animated-vector>
Run Code Online (Sandbox Code Playgroud)
创建动画(@ anim/vector_animation.xml):
<?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="2000"
android:propertyName="pathData"
android:valueType="pathType"
android:valueFrom="M85,40
c10,0 20,0 30,0
c0,-5 -10,-20 -30,-20
c-20,0 -30,15 -30,20
c10,0 20,0 30,0"
android:valueTo="M108,35
c5.587379,-6.7633 9.348007,-16.178439 8.322067,-25.546439
c-8.053787,0.32369 -17.792625,5.36682 -23.569427,12.126399
c-5.177124,5.985922 -9.711121,15.566772 -8.48777,24.749359
c8.976891,0.69453 18.147476,-4.561718 23.73513,-11.329308"/>
</set>
Run Code Online (Sandbox Code Playgroud)
动画包含矢量路径的值from和to值.
最后,在代码中,启动动画:
ImageView imageView = (ImageView) findViewById(R.id.image_view);
AnimatedVectorDrawable animatedVectorDrawable =
(AnimatedVectorDrawable) getDrawable(R.drawable.animated_vector);
imageView.setImageDrawable(animatedVectorDrawable);
animatedVectorDrawable.start();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2021 次 |
| 最近记录: |