例如微博 发表动态页面的动画效果:
从底部滑到屏幕中间向前甩一定值后再回到原来位置
interpolator = new OvershootInterpolator();//向前甩一定值后再回到原来位置 Animation animation = AnimationUtils.loadAnimation(getApplicationContext(), R.anim.dialog_go); animation.setInterpolator(interpolator);
dialog.findViewById(R.id.dialog_layout).setAnimation(animation);
R.anim.dialog_go:
默认屏幕中心位置为(0,0) 顶部是100%p 底部是-100%p<set xmlns:android="http://schemas.android.com/apk/res/android" android:interpolator="@android:anim/overshoot_interpolator" android:duration="1000"> <translate android:fromYDelta="-100%p" android:toYDelta="0" /> <alpha android:fromAlpha="0" android:toAlpha="1" /> </set>
/**
* 动画效果accelerated(加速),decelerated(减速),repeated(重复),bounced(弹跳)等。
*
* AccelerateDecelerateInterpolator 在动画开始与结束的地方速率改变比较慢,在中间的时候加速
AccelerateInterpolator 在动画开始的地方速率改变比较慢,然后开始加速
AnticipateInterpolator 开始的时候向后然后向前甩
AnticipateOvershootInterpolator 开始的时候向后然后向前甩一定值后返回最后的值
BounceInterpolator 动画结束的时候弹起
CycleInterpolator 动画循环播放特定的次数,速率改变沿着正弦曲线
DecelerateInterpolator 在动画开始的地方快然后慢
LinearInterpolator 以常量速率改变
OvershootInterpolator 向前甩一定值后再回到原来位置
*/