Android提供了几种动画类型:View Animation 、Drawable Animation 、Property Animation 。View Animation相当简单,不过只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。比如:你希望View有一个颜色的切换动画;你希望可以使用3D旋转动画;你希望当动画停止时,View的位置就是当前的位置;这些View Animation都无法做到。这就是Property Animation产生的原因:
private void startAnimation() { //位移动画 //设置X轴平移量 int endX = getResources().getDisplayMetrics().widthPixels - imageView.getMeasuredWidth(); //设置Y轴平移量 int endY = getResources().getDisplayMetrics().heightPixels - imageView.getMeasuredHeight()*3; PropertyValuesHolder transXHolder = PropertyValuesHolder.ofFloat("translationX", 0, -endX); PropertyValuesHolder transYHolder = PropertyValuesHolder.ofFloat("translationY", 0, endY); PropertyValuesHolder scaleXHolder=PropertyValuesHolder.ofFloat("scaleX",1,0); PropertyValuesHolder scaleYHolder=PropertyValuesHolder.ofFloat("scaleY",1,0); ObjectAnimator objectAnimator=ObjectAnimator.ofPropertyValuesHolder(imageView,transXHolder,transYHolder,scaleXHolder,scaleYHolder); objectAnimator.setDuration(2000); objectAnimator.start();//播放完后,图片会回到原来的位置 }