在Android中动画效果有很多种,可以分为补间动画、帧动画以及属性动画,比较常用的是补间动画,补间动画又可继续细分,如下表:
动画类型 | Xml定义动画使用的配置节点 |
---|---|
渐变透明度动画 | AlphaAnimation |
渐变尺寸缩放动画 | ScaleAnimation |
位置移动动画 | TranslateAnimation |
画面旋转动画 | RotateAnimation |
现在就来介绍一下补间动画的其中一种:TranslateAnimation 位移动画
布局文件中定义一个ImageView,然后进行初始化
定义一个全局的TranslateAnimation
private TranslateAnimation animation;
动画效果部分的代码:
TranslateAnimation有四个参数,分别如下
float fromXDelta 动画开始的点离当前View X坐标上的差值
float toXDelta 动画结束的点离当前View X坐标上的差值
float fromYDelta 动画开始的点离当前View Y坐标上的差值
float toYDelta 动画开始的点离当前View Y坐标上的差值
animation = new TranslateAnimation(-150, 150, 0, 0);
//设置动画持续时间(毫秒)
animation.setDuration(1500);
//设置重复次数
animation.setRepeatCount(20);
//设置反方向执行
animation.setRepeatMode(Animation.REVERSE);
//开始执行动画(ivHand是一个ImageView)
ivHand.startAnimation(animation);
可以根据自己的需求继续扩展
最后在不需要动画效果的时候记得把动画关掉
//停止动画
animation.cancel();
还可以实现动画监听
animation.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
搞定,手工!