react-native-navigation的迁移库

NavigationAnimator.java 2.1KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. package com.reactnativenavigation.anim;
  2. import android.animation.Animator;
  3. import android.animation.Animator.AnimatorListener;
  4. import android.animation.AnimatorListenerAdapter;
  5. import android.animation.AnimatorSet;
  6. import android.content.Context;
  7. import android.view.View;
  8. import com.reactnativenavigation.parse.AnimationOptions;
  9. import com.reactnativenavigation.parse.NestedAnimationsOptions;
  10. @SuppressWarnings("ResourceType")
  11. public class NavigationAnimator extends BaseAnimator {
  12. public NavigationAnimator(Context context) {
  13. super(context);
  14. }
  15. public void push(View view, NestedAnimationsOptions push, Runnable onAnimationEnd) {
  16. view.setVisibility(View.INVISIBLE);
  17. AnimatorSet set = push.content.getAnimation(view, getDefaultPushAnimation(view));
  18. set.addListener(new AnimatorListenerAdapter() {
  19. @Override
  20. public void onAnimationStart(Animator animation) {
  21. view.setVisibility(View.VISIBLE);
  22. }
  23. @Override
  24. public void onAnimationEnd(Animator animation) {
  25. onAnimationEnd.run();
  26. }
  27. });
  28. set.start();
  29. }
  30. public void pop(View view, NestedAnimationsOptions pop, Runnable onAnimationEnd) {
  31. AnimatorSet set = pop.content.getAnimation(view, getDefaultPopAnimation(view));
  32. set.addListener(new AnimatorListenerAdapter() {
  33. @Override
  34. public void onAnimationEnd(Animator animation) {
  35. onAnimationEnd.run();
  36. }
  37. });
  38. set.start();
  39. }
  40. public void animateStartApp(View view, AnimationOptions startApp, AnimatorListener listener) {
  41. view.setVisibility(View.INVISIBLE);
  42. AnimatorSet set = startApp.getAnimation(view);
  43. set.addListener(new AnimatorListenerAdapter() {
  44. @Override
  45. public void onAnimationStart(Animator animation) {
  46. view.setVisibility(View.VISIBLE);
  47. }
  48. @Override
  49. public void onAnimationEnd(Animator animation) {
  50. listener.onAnimationEnd(animation);
  51. }
  52. });
  53. set.start();
  54. }
  55. }