一.Android中的动画有哪几类,它们的特点和区别是什么?
根据谷歌官方文档,动画分为3种:
1.帧动画/图像动画(Drawable Animation)
- 1.xml方式->配置一组图片,动态播放
2.补间动画(View Animation)
- 1.位移动画
- 2.缩放动画
- 3.旋转动画
- 4.透明动画
- 5.集合
3.属性动画(Property Animation)-是3.0之后才有的
- 拥有补间动画所有的功能
属性动画和补间动画的区别:
- 补间动画:
- 是父容器不断的绘制view,看起来像移动了效果,其实view没有变化,还在原地
- 属性动画:
- 是通过不断改变自己view的属性值,真正的改变view.
- 两者的代码写法如下:
//补间动画
public void clickViewAnimation(View view) {
//位移动画,x方向不变,y有0->250
TranslateAnimation animation = new TranslateAnimation(0, 0, 0, 250);
//时长
animation.setDuration(2000);
//停在结果位置
animation.setFillAfter(true);
//控件开始动画,传入动画
iv.startAnimation(animation);
}
//属性动画
public void clickViewProperty(View view) {
//动画对象:控件以及动画的类型都写在里面,然后是一组"不尽"的数组:比如Y方向的0->250又上又下
ObjectAnimator animator = ObjectAnimator.ofFloat(iv, "translationY", 0,
250, 100, 200, 250);
//时长
animator.setDuration(5000);
//对象开始
animator.start();
}
//测试他两的区别
public void clickIv(View view) {
Toast.makeText(this, "点击了图片", Toast.LENGTH_SHORT).show();
}
动画插入器是什么?
- 是各种效果实现所要用到的,比如加速,比如来回摆动等等
- 用法是:(一句代码)直接在动画开始前设置即可:
animation.setInterpolator(new XXXInterpolator())