关于Android动画的监听,开始,结束的控制分别有 Animation 动画和 ObjectAnimator 动画
2017-02-21 15:31
639 查看
1》首先是Animation 动画监听,开始,结束的控制
private ImageView yun_left; private Animation myAnimation_Translate_left, myAnimation_Translate_right;
2》
myAnimation_Translate_left = AnimationUtils.loadAnimation(this, R.anim.my_translate_action_left); myAnimation_Translate_right = AnimationUtils.loadAnimation(this, R.anim.my_translate_action_right);
3》
myAnimation_Translate_left.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation arg0) {}@Overridepublic void onAnimationRepeat(Animation arg0) {}@Overridepublic void onAnimationEnd(Animation arg0) {randomDuration();myAnimation_Translate_left.setDuration(number);yun_left.startAnimation(myAnimation_Translate_right);}});myAnimation_Translate_right.setAnimationListener(new AnimationListener() {@Overridepublic void onAnimationStart(Animation arg0) {}@Overridepublic void onAnimationRepeat(Animation arg0) {}@Overridepublic void onAnimationEnd(Animation arg0) {randomDuration();myAnimation_Translate_left.setDuration(number);yun_left.startAnimation(myAnimation_Translate_left);}});yun_left.startAnimation(myAnimation_Translate_left);
4》定义xml布局
向右移动
my_translate_action_right
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta="0"android:toXDelta="100%"android:fillAfter="false"/><!-- translate 位置转移动画效果整型值:fromXDelta 属性为动画起始时 X坐标上的位置toXDelta 属性为动画结束时 X坐标上的位置fromYDelta 属性为动画起始时 Y坐标上的位置toYDelta 属性为动画结束时 Y坐标上的位置注意:没有指定fromXType toXType fromYType toYType 时候,默认是以自己为相对参照物长整型值:duration 属性为动画持续时间说明:时间以毫秒为单位--></set>
5》向左移动
my_translate_action_left
<?xml version="1.0" encoding="utf-8"?><set xmlns:android="http://schemas.android.com/apk/res/android"><translateandroid:fromXDelta="100%"android:toXDelta="0"android:fillAfter="false"/><!-- translate 位置转移动画效果整型值:fromXDelta 属性为动画起始时 X坐标上的位置toXDelta 属性为动画结束时 X坐标上的位置fromYDelta 属性为动画起始时 Y坐标上的位置toYDelta 属性为动画结束时 Y坐标上的位置注意:没有指定fromXType toXType fromYType toYType 时候,默认是以自己为相对参照物长整型值:duration 属性为动画持续时间说明:时间以毫秒为单位--></set>
2.接下来是ObjectAnimator动画实现贝塞尔曲线样式
1》创建对象
ObjectAnimator animatorX,animatorY;
animatorX = ObjectAnimator.ofFloat(same_level, "X",0,600).setDuration(1000);animatorY = ObjectAnimator.ofFloat(same_level, "Y",800,200).setDuration(1000);//设置监听
animatorY.addListener(new Animator.AnimatorListener() {@Overridepublic void onAnimationStart(Animator animation) {}@Overridepublic void onAnimationEnd(Animator animation) {MyToast.showToast(SameCaseActy.this,im.getScaleX()+"");}@Overridepublic void onAnimationCancel(Animator animation) {}@Overridepublic void onAnimationRepeat(Animator animation) {}});
//开始动画
same_level.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {animatorY.setInterpolator(new LinearInterpolator());animatorX.setInterpolator(new PathInterpolator(0.4f,0,0.2f,1));animatorX.start();animatorY.start();}});
相关文章推荐
- Android中属性动画2----ObjectAnimator监听的使用
- Android -- Fragment动画异常Unknown animation name: objectAnimator
- android中关于位移动画TranslateAnimation开始和结束时闪动问题的记录
- 关于序列帧动画,开始,结束监听的解决
- Android Animation、ObjectAnimator与ValueAnimator实现视图动画和属性动画
- Animation动画开始、结束、重复事件监听
- 2014-10-31Android学习------序列帧动画,开始,结束监听的解决--------GIF动画实现
- Android编程之Fragment使用动画造成Unknown animation name: objectAnimator异常
- Android Animation 帧动画监听结束的方法
- Android属性动画欣赏——ObjectAnimator与动画监听事件
- Android属性动画之ObjectAnimator控制
- Android中关于Animation和Animator动画的知识点总结
- 监听css3动画结束事件-webkitAnimationEnd
- android之动画(一)通过AnimationDrawable控制逐帧动画
- Android动画学习(三)之使用ValueAnimator和ObjectAnimator实现动画实例
- Android 一般动画animation和属性动画animator
- Android 一般动画animation和属性动画animator
- [Android 动画]简要分析一下Animator 与 Animation
- 【android动画开源库】使用ObjectAnimator后按钮等无法交互问题
- Android中Animation动画熟悉过程2----透明度控制动画效果alpha