下面列出了android.view.animation.AccelerateDecelerateInterpolator#getInterpolation() 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
private float decelerate(long delta, int scale)
{
long accelerationDelta = delta - ACCELERATE_ROTATION_DURATION;
AccelerateDecelerateInterpolator interpolator = new AccelerateDecelerateInterpolator();
float interpolatedTime = interpolator.getInterpolation((float) accelerationDelta / DECELERATE_ROTATION_DURATION);
float decelerationAngle = -interpolatedTime * (ACCELERATION_ROTATION_DEGREES * scale);
return ACCELERATION_ROTATION_DEGREES * scale + decelerationAngle;
}
private float accelerate(long delta, int scale)
{
AccelerateDecelerateInterpolator interpolator = new AccelerateDecelerateInterpolator();
float interpolatedTime = interpolator.getInterpolation((float) delta / ACCELERATE_ROTATION_DURATION);
return interpolatedTime * (ACCELERATION_ROTATION_DEGREES * scale);
}
private float decelerate(long delta, int scale) {
long accelerationDelta = delta - ACCELERATE_ROTATION_DURATION;
AccelerateDecelerateInterpolator interpolator = new AccelerateDecelerateInterpolator();
float interpolatedTime = interpolator.getInterpolation((float) accelerationDelta / DECELERATE_ROTATION_DURATION);
float decelerationAngle = -interpolatedTime * (ACCELERATION_ROTATION_DEGREES * scale);
return ACCELERATION_ROTATION_DEGREES * scale + decelerationAngle;
}
private float accelerate(long delta, int scale) {
long accelerationDelta = delta;
AccelerateDecelerateInterpolator interpolator = new AccelerateDecelerateInterpolator();
float interpolatedTime = interpolator.getInterpolation((float) accelerationDelta / ACCELERATE_ROTATION_DURATION);
float accelerationAngle = interpolatedTime * (ACCELERATION_ROTATION_DEGREES * scale);
return accelerationAngle;
}
private float decelerate(long delta, int scale) {
long accelerationDelta = delta - ACCELERATE_ROTATION_DURATION;
AccelerateDecelerateInterpolator interpolator = new AccelerateDecelerateInterpolator();
float interpolatedTime = interpolator.getInterpolation((float) accelerationDelta / DECELERATE_ROTATION_DURATION);
float decelerationAngle = -interpolatedTime * (ACCELERATION_ROTATION_DEGREES * scale);
return ACCELERATION_ROTATION_DEGREES * scale + decelerationAngle;
}
private float accelerate(long delta, int scale) {
long accelerationDelta = delta;
AccelerateDecelerateInterpolator interpolator = new AccelerateDecelerateInterpolator();
float interpolatedTime = interpolator.getInterpolation((float) accelerationDelta / ACCELERATE_ROTATION_DURATION);
float accelerationAngle = interpolatedTime * (ACCELERATION_ROTATION_DEGREES * scale);
return accelerationAngle;
}