不断学习,做更好的自己!💪
视频号CSDN简书欢迎打开微信,关注我的视频号:KevinDev点我点我 矢量动画矢量动画其实是属性动画系统的一个应用。 矢量动画可以有多种动画效果:
- group 对应的旋转/缩放/平移等效果是传统的动画效果。
- path 对应的属性可以做出很多绚丽的效果。比如改变 pathData 属性,可以做出形状变化的动画;改变 trimPathStart/trimPathEnd 可以做出绘制曲线路径的效果;改变 strokeColor 可以做出线条颜色变化的效果。
- clip-path 的 pathData 变化可以做出各种形状的揭开和遮挡的效果。
在 res/drawable 内定义一个三角形矢量图的 XML
2. 定义矢量动画
XML 文件也定义在 res/drawable 内,本质上也是一个 drawable 资源.
3. 定义属性动画
XML 文件定义在 res/animator 内 path_change.xml
rotate_animator.xml
4. 集成运行动画
布局文件:
代码:
public class MainActivity extends AppCompatActivity {
private ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mImageView = findViewById(R.id.imageview);
}
public void show(View view) {
ImageView imageView = (ImageView) view;
Drawable drawable = imageView.getDrawable();
if (drawable instanceof Animatable) {
((Animatable) drawable).start();
}
}
}
第三方库
-
vectalign 主要功能就是通过计算修改两个 SVG 的路径使其可以无缝切换。
-
RichPath 在代码中自如的控制 Path 和属性,比起纯资源文件可操作性更高。