Java 类android.animation.TimeInterpolator 实例源码
项目:Musicoco
文件:BottomNavigationController.java
private void startTranslatePlayListAnim(float from, float to, int duration, final View view, @Nullable TimeInterpolator interpolator, @Nullable Animator.AnimatorListener listener) {
final ValueAnimator anim = ObjectAnimator.ofFloat(from, to);
anim.setDuration(duration);
if (interpolator != null)
anim.setInterpolator(interpolator);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float va = (float) animation.getAnimatedValue();
view.setY(va);
}
});
if (listener != null) {
anim.addListener(listener);
}
anim.start();
}
项目:weex-3d-map
文件:DimensionUpdateListener.java
@Override
public void onAnimationUpdate(ValueAnimator animation) {
if (view.getLayoutParams() != null) {
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
TimeInterpolator interpolator = animation.getInterpolator();
float fraction = animation.getAnimatedFraction();
if (width != null) {
layoutParams.width = intEvaluator.evaluate(interpolator.getInterpolation(fraction),
width.first,
width.second);
}
if (height != null) {
layoutParams.height = intEvaluator.evaluate(interpolator.getInterpolation(fraction),
height.first,
height.second);
}
view.requestLayout();
}
}
项目:Virtualview-Android
文件:PageView.java
private TimeInterpolator getTimeInterpolater() {
switch (mAnimationStyle) {
case ViewBaseCommon.ANIMATION_LINEAR:
return new LinearInterpolator();
case ViewBaseCommon.ANIMATION_DECELERATE:
return new DecelerateInterpolator();
case ViewBaseCommon.ANIMATION_ACCELERATE:
return new AccelerateInterpolator();
case ViewBaseCommon.ANIMATION_ACCELERATEDECELERATE:
return new AccelerateDecelerateInterpolator();
case ViewBaseCommon.ANIMATION_SPRING:
return new SpringInterpolator();
default:
return new LinearInterpolator();
}
}
项目:Depth
文件:ExitAnimation.java
@Override
public void prepareAnimators(DepthRelativeLayout target, int index, int animationDelay) {
final TimeInterpolator interpolator = new ExpoIn();
final float finalTranslationY = exitConfiguration.getFinalYPercent() * target.getResources().getDisplayMetrics().heightPixels;
final float finalTranslationX = exitConfiguration.getFinalXPercent() * target.getResources().getDisplayMetrics().widthPixels;
final long totalDuration = exitConfiguration.getDuration();
final ObjectAnimator translationY2 = ObjectAnimator.ofFloat(target, View.TRANSLATION_Y, finalTranslationY);
translationY2.setDuration(totalDuration);
//translationY2.setInterpolator(new AccelerateInterpolator());
translationY2.setInterpolator(interpolator);
translationY2.setStartDelay(animationDelay);
attachListener(translationY2);
add(translationY2);
final ObjectAnimator translationX2 = ObjectAnimator.ofFloat(target, View.TRANSLATION_X, finalTranslationX);
translationX2.setDuration(totalDuration);
translationX2.setInterpolator(interpolator);
translationX2.setStartDelay(animationDelay);
add(translationX2);
}
项目:StaggeredAnimationGroup
文件:StaggeredAnimationGroupTest.java
@Test
public void preparePartialTransition_setsPartialInterpolator() {
//given
final StaggeredAnimationGroup spiedGroup = prepareSpiedGroup();
final TimeInterpolator testInterpolator = new LinearOutSlowInInterpolator();
final Transition spiedTransition = spy(new AutoTransition());
final StaggeredAnimationGroup.PartialTransitionFactory factory =
new StaggeredAnimationGroup.PartialTransitionFactory() {
@Override
public Transition createPartialTransition(boolean show, int viewId, int indexInTransition) {
return spiedTransition;
}
};
spiedGroup.setPartialTransitionFactory(factory);
spiedGroup.setPartialInterpolator(testInterpolator);
//when
spiedGroup.preparePartialTransition(true, 0, 0);
//then
verify(spiedTransition, times(1)).setInterpolator(testInterpolator);
}
项目:android_additive_animations
文件:BaseAdditiveAnimator.java
public T setInterpolator(TimeInterpolator interpolator) {
if(mCurrentCustomInterpolator != null) {
switchInterpolator(interpolator);
} else {
getValueAnimator().setInterpolator(interpolator);
}
return self();
}
项目:GitHub
文件:ViewAnimation.java
/**
* Set TimeInterpolator for all page animations.
*
* @param interpolator TimeInterpolator
*/
public void setTimeInterpolator(TimeInterpolator interpolator) {
if (pageAnimations == null) return;
for (ArrayList<PageAnimation> pageAnimationsInSamePage : pageAnimations) {
if (pageAnimationsInSamePage == null) continue;
for (PageAnimation pageAnimation : pageAnimationsInSamePage) pageAnimation.setTimeInterpolator(interpolator);
}
}
项目:EasyTransition
文件:EasyTransition.java
private static void runExitAnimation(final Activity activity,
ArrayList<EasyTransitionOptions.ViewAttrs> attrs,
long duration,
TimeInterpolator interpolator) {
if (null == attrs || attrs.size() == 0)
return;
for (final EasyTransitionOptions.ViewAttrs attr : attrs) {
View view = activity.findViewById(attr.id);
int[] location = new int[2];
view.getLocationOnScreen(location);
view.setPivotX(0);
view.setPivotY(0);
view.animate()
.scaleX(attr.width / view.getWidth())
.scaleY(attr.height / view.getHeight())
.translationX(attr.startX - location[0])
.translationY(attr.startY - location[1])
.setInterpolator(interpolator)
.setDuration(duration);
}
activity.findViewById(attrs.get(0).id).postDelayed(new Runnable() {
@Override
public void run() {
activity.finish();
activity.overridePendingTransition(0, 0);
}
}, duration);
}
项目:SimpleUILauncher
文件:PagedView.java
protected void snapToPage(int whichPage, int duration, boolean immediate,
TimeInterpolator interpolator) {
whichPage = validateNewPage(whichPage);
int newX = getScrollForPage(whichPage);
final int delta = newX - getUnboundedScrollX();
snapToPage(whichPage, delta, duration, immediate, interpolator);
}
项目:FlickLauncher
文件:PagedView.java
protected void snapToPage(int whichPage, int delta, int duration, boolean immediate,
TimeInterpolator interpolator) {
whichPage = validateNewPage(whichPage);
mNextPage = whichPage;
pageBeginMoving();
awakenScrollBars(duration);
if (immediate) {
duration = 0;
} else if (duration == 0) {
duration = Math.abs(delta);
}
if (!mScroller.isFinished()) {
abortScrollerAnimation(false);
}
if (interpolator != null) {
mScroller.setInterpolator(interpolator);
} else {
mScroller.setInterpolator(mDefaultInterpolator);
}
mScroller.startScroll(getUnboundedScrollX(), 0, delta, 0, duration);
updatePageIndicator();
// Trigger a compute() to finish switching pages if necessary
if (immediate) {
computeScroll();
}
mForceScreenScrolled = true;
invalidate();
}
项目:LaunchEnr
文件:PagedView.java
protected void snapToPage(int whichPage, int duration, boolean immediate,
TimeInterpolator interpolator) {
whichPage = validateNewPage(whichPage);
int newX = getScrollForPage(whichPage);
final int delta = newX - getUnboundedScrollX();
snapToPage(whichPage, delta, duration, immediate, interpolator);
}
项目:LaunchEnr
文件:PagedView.java
protected void snapToPage(int whichPage, int delta, int duration, boolean immediate,
TimeInterpolator interpolator) {
whichPage = validateNewPage(whichPage);
mNextPage = whichPage;
awakenScrollBars(duration);
if (immediate) {
duration = 0;
} else if (duration == 0) {
duration = Math.abs(delta);
}
if (duration != 0) {
pageBeginTransition();
}
if (!mScroller.isFinished()) {
abortScrollerAnimation(false);
}
if (interpolator != null) {
mScroller.setInterpolator(interpolator);
} else {
mScroller.setInterpolator(mDefaultInterpolator);
}
mScroller.startScroll(getUnboundedScrollX(), 0, delta, 0, duration);
updatePageIndicator();
// Trigger a compute() to finish switching pages if necessary
if (immediate) {
computeScroll();
pageEndTransition();
}
invalidate();
}
项目:CSipSimple
文件:GlowPadView.java
private void hideTargets(boolean animate, boolean expanded) {
mTargetAnimations.cancel();
// Note: these animations should complete at the same time so that we can swap out
// the target assets asynchronously from the setTargetResources() call.
mAnimatingTargets = animate;
final int duration = animate ? HIDE_ANIMATION_DURATION : 0;
final int delay = animate ? HIDE_ANIMATION_DELAY : 0;
final float targetScale = expanded ?
TARGET_SCALE_EXPANDED : TARGET_SCALE_COLLAPSED;
final int length = mTargetDrawables.size();
final TimeInterpolator interpolator = Ease.Cubic.easeOut;
for (int i = 0; i < length; i++) {
TargetDrawable target = mTargetDrawables.get(i);
target.setState(TargetDrawable.STATE_INACTIVE);
mTargetAnimations.add(Tweener.to(target, duration,
"ease", interpolator,
"alpha", 0.0f,
"scaleX", targetScale,
"scaleY", targetScale,
"delay", delay,
"onUpdate", mUpdateListener));
}
float ringScaleTarget = expanded ?
RING_SCALE_EXPANDED : RING_SCALE_COLLAPSED;
ringScaleTarget *= mRingScaleFactor;
mTargetAnimations.add(Tweener.to(mOuterRing, duration,
"ease", interpolator,
"alpha", 0.0f,
"scaleX", ringScaleTarget,
"scaleY", ringScaleTarget,
"delay", delay,
"onUpdate", mUpdateListener,
"onComplete", mTargetUpdateListener));
mTargetAnimations.start();
}
项目:Musicoco
文件:AnimationUtils.java
public static void startTranslateYAnim(float from, float to, int duration, final View view, @Nullable TimeInterpolator interpolator) {
final ValueAnimator anim = ObjectAnimator.ofFloat(from, to);
anim.setDuration(duration);
if (interpolator != null)
anim.setInterpolator(interpolator);
anim.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
float va = (float) animation.getAnimatedValue();
view.setY(va);
}
});
anim.start();
}
项目:Farmacias
文件:ExpandableLinearLayout.java
/**
* {@inheritDoc}
*/
@Override
public void toggle(final long duration, final @Nullable TimeInterpolator interpolator) {
if (closePosition < getCurrentPosition()) {
collapse(duration, interpolator);
} else {
expand(duration, interpolator);
}
}
项目:Farmacias
文件:ExpandableLinearLayout.java
/**
* {@inheritDoc}
*/
@Override
public void expand(final long duration, final @Nullable TimeInterpolator interpolator) {
if (isAnimating) return;
if (duration <= 0) {
move(layoutSize, duration, interpolator);
return;
}
createExpandAnimator(getCurrentPosition(), layoutSize, duration, interpolator).start();
}
项目:Farmacias
文件:ExpandableLinearLayout.java
/**
* {@inheritDoc}
*/
@Override
public void collapse(final long duration, final @Nullable TimeInterpolator interpolator) {
if (isAnimating) return;
if (duration <= 0) {
move(closePosition, duration, interpolator);
return;
}
createExpandAnimator(getCurrentPosition(), closePosition, duration, interpolator).start();
}
项目:Farmacias
文件:Utils.java
/**
* Creates interpolator.
*
* @param interpolatorType
* @return
*/
public static TimeInterpolator createInterpolator(@IntRange(from = 0, to = 10) final int interpolatorType) {
switch (interpolatorType) {
case ACCELERATE_DECELERATE_INTERPOLATOR:
return new AccelerateDecelerateInterpolator();
case ACCELERATE_INTERPOLATOR:
return new AccelerateInterpolator();
case ANTICIPATE_INTERPOLATOR:
return new AnticipateInterpolator();
case ANTICIPATE_OVERSHOOT_INTERPOLATOR:
return new AnticipateOvershootInterpolator();
case BOUNCE_INTERPOLATOR:
return new BounceInterpolator();
case DECELERATE_INTERPOLATOR:
return new DecelerateInterpolator();
case FAST_OUT_LINEAR_IN_INTERPOLATOR:
return new FastOutLinearInInterpolator();
case FAST_OUT_SLOW_IN_INTERPOLATOR:
return new FastOutSlowInInterpolator();
case LINEAR_INTERPOLATOR:
return new LinearInterpolator();
case LINEAR_OUT_SLOW_IN_INTERPOLATOR:
return new LinearOutSlowInInterpolator();
case OVERSHOOT_INTERPOLATOR:
return new OvershootInterpolator();
default:
return new LinearInterpolator();
}
}
项目:Orin
文件:FlatPlayerPlaybackControlsFragment.java
private static void addAnimation(Collection<Animator> animators, View view, TimeInterpolator interpolator, int duration, int delay) {
Animator scaleX = ObjectAnimator.ofFloat(view, View.SCALE_X, 0f, 1f);
scaleX.setInterpolator(interpolator);
scaleX.setDuration(duration);
scaleX.setStartDelay(delay);
animators.add(scaleX);
Animator scaleY = ObjectAnimator.ofFloat(view, View.SCALE_Y, 0f, 1f);
scaleY.setInterpolator(interpolator);
scaleY.setDuration(duration);
scaleY.setStartDelay(delay);
animators.add(scaleY);
}
项目:FlickLauncher
文件:PagedView.java
protected void snapToPage(int whichPage, int duration, boolean immediate,
TimeInterpolator interpolator) {
whichPage = validateNewPage(whichPage);
int newX = getScrollForPage(whichPage);
final int delta = newX - getUnboundedScrollX();
snapToPage(whichPage, delta, duration, immediate, interpolator);
}
项目:Mire
文件:TransitionAnimation.java
public static MoveData startAnimation(Context context, final View toView, Bundle transitionBundle, Bundle savedInstanceState, final int duration, final TimeInterpolator interpolator) {
final TransitionData transitionData = new TransitionData(context, transitionBundle);
if (transitionData.imageFilePath != null) {
setImageToView(toView, transitionData.imageFilePath);
}
final MoveData moveData = new MoveData();
moveData.toView = toView;
moveData.duration = duration;
if (savedInstanceState == null) {
ViewTreeObserver observer = toView.getViewTreeObserver();
observer.addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
toView.getViewTreeObserver().removeOnPreDrawListener(this);
int[] screenLocation = new int[2];
toView.getLocationOnScreen(screenLocation);
moveData.leftDelta = transitionData.thumbnailLeft - screenLocation[0];
moveData.topDelta = transitionData.thumbnailTop - screenLocation[1];
moveData.widthScale = (float) transitionData.thumbnailWidth / toView.getWidth();
moveData.heightScale = (float) transitionData.thumbnailHeight / toView.getHeight();
runEnterAnimation(moveData, interpolator);
return true;
}
});
}
return moveData;
}
项目:Mire
文件:TransitionAnimation.java
private static void runEnterAnimation(MoveData moveData, TimeInterpolator interpolator) {
final View toView = moveData.toView;
toView.setPivotX(0);
toView.setPivotY(0);
toView.setScaleX(moveData.widthScale);
toView.setScaleY(moveData.heightScale);
toView.setTranslationX(moveData.leftDelta);
toView.setTranslationY(moveData.topDelta);
toView.animate().setDuration(moveData.duration).
scaleX(1).scaleY(1).
translationX(0).translationY(0).
setInterpolator(interpolator);
}
项目:LiveGiftLayout
文件:GiftAnimationUtil.java
/**
* @param target
* @param star 动画起始坐标
* @param end 动画终止坐标
* @param duration 持续时间
* @return 创建一个从左到右的飞入动画
* 礼物飞入动画
*/
public static ObjectAnimator createFlyFromLtoR(final View target, float star, float end, int duration, TimeInterpolator interpolator) {
//1.个人信息先飞出来
ObjectAnimator anim1 = ObjectAnimator.ofFloat(target, "translationX",
star, end);
anim1.setInterpolator(interpolator);
anim1.setDuration(duration);
return anim1;
}
项目:GitHub
文件:RevealVisibilityTransition.java
@Override
public TimeInterpolator getInterpolator() {
return mAnimator.getInterpolator();
}
项目:GitHub
文件:RevealVisibilityTransition.java
@Override
public void setInterpolator(TimeInterpolator timeInterpolator) {
mAnimator.setInterpolator(timeInterpolator);
}
项目:GitHub
文件:PauseableAnimator.java
@Override public void setInterpolator(TimeInterpolator value) {
mWrappedAnimator.setInterpolator(value);
}
项目:MusicX-music-player
文件:ProgressBar.java
public void setAnimInterpolator(@NonNull TimeInterpolator timeInterpolator) {
mProgressAnimator.setInterpolator(timeInterpolator);
mMaxAnimator.setInterpolator(timeInterpolator);
}
项目:SmartOrnament
文件:GuillotineAnimation.java
public GuillotineBuilder setInterpolator(TimeInterpolator interpolator) {
this.interpolator = interpolator;
return this;
}
项目:GitHub
文件:WoWoTranslationAnimation.java
private WoWoTranslationAnimation(int page, float startOffset, float endOffset, int ease, TimeInterpolator interpolator, boolean useSameEaseEnumBack, float fromX, float fromY, float toX, float toY) {
super(page, startOffset, endOffset, ease, interpolator, useSameEaseEnumBack, fromX, fromY, toX, toY);
}
项目:SimpleUILauncher
文件:LauncherScroller.java
public void setInterpolator(TimeInterpolator interpolator) {
mInterpolator = interpolator;
}
项目:GitHub
文件:WoWoPathAnimation.java
private WoWoPathAnimation(int page, float startOffset, float endOffset, int ease, TimeInterpolator interpolator, boolean useSameEaseEnumBack, WoWoPathView pathView, float fromProcess, float toProcess) {
super(page, startOffset, endOffset, ease, interpolator, useSameEaseEnumBack);
this.pathView = pathView;
this.fromProcess = fromProcess;
this.toProcess = toProcess;
}
项目:GitHub
文件:WoWoPosition3DAnimation.java
private WoWoPosition3DAnimation(int page, float startOffset, float endOffset, int ease, TimeInterpolator interpolator, boolean useSameEaseEnumBack, float fromX, float fromY, float fromZ, float toX, float toY, float toZ) {
super(page, startOffset, endOffset, ease, interpolator, useSameEaseEnumBack, fromX, fromY, fromZ, toX, toY, toZ);
}
项目:GitHub
文件:TextPageAnimation.java
public TextPageAnimation(int page, float startOffset, float endOffset, int ease, TimeInterpolator interpolator, boolean useSameEaseEnumBack, String fromText, String toText, Typewriter typewriter) {
super(page, startOffset, endOffset, ease, interpolator, useSameEaseEnumBack);
this.fromText = fromText;
this.toText = toText;
this.typewriter = typewriter;
}
项目:GitHub
文件:WoWoShapeColorAnimation.java
private WoWoShapeColorAnimation(int page, float startOffset, float endOffset, int ease, TimeInterpolator interpolator, boolean useSameEaseEnumBack, Integer fromColor, Integer toColor, Chameleon chameleon) {
super(page, startOffset, endOffset, ease, interpolator, useSameEaseEnumBack, fromColor, toColor, chameleon);
}
项目:SimpleUILauncher
文件:DeleteDropTarget.java
@Override
public void onFlingToDelete(final DragObject d, PointF vel) {
// Don't highlight the icon as it's animating
d.dragView.setColor(0);
final DragLayer dragLayer = mLauncher.getDragLayer();
FlingAnimation fling = new FlingAnimation(d, vel,
getIconRect(d.dragView.getMeasuredWidth(), d.dragView.getMeasuredHeight(),
mDrawable.getIntrinsicWidth(), mDrawable.getIntrinsicHeight()),
dragLayer);
final int duration = fling.getDuration();
final long startTime = AnimationUtils.currentAnimationTimeMillis();
// NOTE: Because it takes time for the first frame of animation to actually be
// called and we expect the animation to be a continuation of the fling, we have
// to account for the time that has elapsed since the fling finished. And since
// we don't have a startDelay, we will always get call to update when we call
// start() (which we want to ignore).
final TimeInterpolator tInterpolator = new TimeInterpolator() {
private int mCount = -1;
private float mOffset = 0f;
@Override
public float getInterpolation(float t) {
if (mCount < 0) {
mCount++;
} else if (mCount == 0) {
mOffset = Math.min(0.5f, (float) (AnimationUtils.currentAnimationTimeMillis() -
startTime) / duration);
mCount++;
}
return Math.min(1f, mOffset + t);
}
};
Runnable onAnimationEndRunnable = new Runnable() {
@Override
public void run() {
mLauncher.exitSpringLoadedDragMode();
completeDrop(d);
mLauncher.getDragController().onDeferredEndFling(d);
}
};
dragLayer.animateView(d.dragView, fling, duration, tInterpolator, onAnimationEndRunnable,
DragLayer.ANIMATION_END_DISAPPEAR, null);
}
项目:GitHub
文件:WoWoElevationAnimation.java
private WoWoElevationAnimation(int page, float startOffset, float endOffset, int ease, TimeInterpolator interpolator, boolean useSameEaseEnumBack, float fromElevation, float toElevation) {
super(page, startOffset, endOffset, ease, interpolator, useSameEaseEnumBack);
this.fromElevation = fromElevation;
this.toElevation = toElevation;
}
项目:GitHub
文件:WoWoPositionAnimation.java
private WoWoPositionAnimation(int page, float startOffset, float endOffset, int ease, TimeInterpolator interpolator, boolean useSameEaseEnumBack, float fromX, float fromY, float toX, float toY) {
super(page, startOffset, endOffset, ease, interpolator, useSameEaseEnumBack, fromX, fromY, toX, toY);
}
项目:GitHub
文件:WoWoTextViewTextAnimation.java
public WoWoTextViewTextAnimation(int page, float startOffset, float endOffset, int ease, TimeInterpolator interpolator, boolean useSameEaseEnumBack, String fromText, String toText, Typewriter typewriter) {
super(page, startOffset, endOffset, ease, interpolator, useSameEaseEnumBack, fromText, toText, typewriter);
}
项目:FlowLine
文件:FlowLineView.java
public void start() {
ValueAnimator mAnimator = ValueAnimator.ofInt(360, 0);
mAnimator.setDuration(10 * 360);
mAnimator.setRepeatCount(ValueAnimator.INFINITE);
mAnimator.setInterpolator(new TimeInterpolator() {
@Override
public float getInterpolation(float input) {
return input;
}
});
mAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
Integer value = (Integer) animation.getAnimatedValue();
startLinePoint = value / 360f;
endLinePoint = startLinePoint + 0.5f;
if (startLinePoint > 0.5f) {
offsetLinePoint = startLinePoint - 0.5f;
int splitColor = Color.argb((int) (255 * (offsetLinePoint / 0.5f)), 255, 0, 0);
colorArray =
new int[]{splitColor, 0x00FF0000, 0, 0, 0xFFFF0000, splitColor};
pathArray =
new float[]{0f, offsetLinePoint, offsetLinePoint, startLinePoint, startLinePoint, 1f};
} else {
colorArray =
new int[]{0, 0, 0xFFFF0000, 0x00FF0000, 0, 0};
pathArray =
new float[]{0f, startLinePoint, startLinePoint, endLinePoint, endLinePoint, 1f};
}
SweepGradient mShader = new SweepGradient(250, 250, colorArray, pathArray);
mBitmapPaint.setShader(mShader);
mBitmapCanvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
mBitmapCanvas.drawPath(mPath, mBitmapPaint);
postInvalidate();
}
});
mAnimator.start();
}
项目:AndroidOpen
文件:PlayTransition.java
@Override
public TimeInterpolator getInterpolator() {
return mAnimator.getInterpolator();
}