Android展开视图动画
Android expand view animation
我有一个 bottomBar,我想展开它。我想我知道如何用动画来做。
但是根据
如果我使用旧动画。然后按钮将不会被重新定位。仅在视觉上。
我如何使用 Animators 实现这一目标。
我想要达到的目标
所以有人可以在正确的方向推动我。
这解决了我的问题。
public static ValueAnimator slideAnimator(int start, int end, final View view, int duration) {
ValueAnimator animator = ValueAnimator.ofInt(start, end);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int val = (Integer) valueAnimator.getAnimatedValue();
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height = val;
view.setLayoutParams(layoutParams);
}
});
animator.setDuration(duration);
return animator;
}
归功于:
好吧,这可以通过 "one-liner":
TransitionManager.beginDelayedTransition(viewGroup);
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height = endValue;
view.invalidate();
我有一个 bottomBar,我想展开它。我想我知道如何用动画来做。
但是根据
如果我使用旧动画。然后按钮将不会被重新定位。仅在视觉上。
我如何使用 Animators 实现这一目标。
我想要达到的目标
所以有人可以在正确的方向推动我。
这解决了我的问题。
public static ValueAnimator slideAnimator(int start, int end, final View view, int duration) {
ValueAnimator animator = ValueAnimator.ofInt(start, end);
animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator valueAnimator) {
int val = (Integer) valueAnimator.getAnimatedValue();
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height = val;
view.setLayoutParams(layoutParams);
}
});
animator.setDuration(duration);
return animator;
}
归功于:
好吧,这可以通过 "one-liner":
TransitionManager.beginDelayedTransition(viewGroup);
ViewGroup.LayoutParams layoutParams = view.getLayoutParams();
layoutParams.height = endValue;
view.invalidate();