Android 속성 애니메이션 ValueAnimator 와 플러그 인 설명

Android 속성 애니메이션 ValueAnimator 와 플러그 인 설명
1.ValueAnimator 상세 설명:
ValueAnimator 는 전체 애니메이션 의 핵심 이 고 ObjectAnimator 는 ValueAnimator 를 계승 하여 이 루어 집 니 다.
ValueAnimator 는 수치 발생 기 처럼 일정한 규칙 을 가 진 숫자 를 만들어 서 이동 자가 애니메이션 의 실현 과정 을 제어 하도록 한다.
1.ValueAnimator 의 사용:

ValueAnimator valueAnimator = ValueAnimator.ofFloat(0, 100); 
valueAnimator.setDuration(1000).start(); 
 
//               ,   “  ”,"  ",  "      " ,              
//    :http://blog.sina.com.cn/s/blog_6e519585010157zt.html 
valueAnimator.setInterpolator(new DecelerateInterpolator()); 
 
final int baseWidth = animatorBt.getWidth(); 
//valueAnimator  1000     0 100   ,           animation.getAnimatedValue()     ,            
valueAnimator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { 
 @Override 
 public void onAnimationUpdate(ValueAnimator animation) { 
  Float value = (Float) animation.getAnimatedValue(); 
 
  LogUtils.showLog("value "+value); 
 
  //    value 
  //1.     
  animatorBt.setTranslationX(value * 5); 
  //2.      
  animatorBt.setAlpha(1 - (value) / 200); 
  //3.  button   ,    ObjectAnimator         
  ViewGroup.LayoutParams params = animatorBt.getLayoutParams(); 
  params.width = (int) (baseWidth + value); 
 
  LogUtils.showLog("   "+params.width); 
 
  //   view                  
  animatorBt.requestLayout(); 
  } 
 }); 
 } 
 }, 1000); 

2.ValueAnimator 애니메이션 정지:
  ValueAnimator 대상 의 cancel()방법 이나 end()방법 을 호출 할 수 있 습 니 다.먼저 상기 두 가지 방법 을 호출 하면 애니메이션 을 중단 하지만 차이 점 은 바로
        1.cancel()을 호출 하면 ValueAnimator 는 즉시 멈 추고 다시 바 꾸 지 않 습 니 다.
        2.end()를 호출 하면 ValueAnimator 는 이 애니메이션 이 끝 난 상태의 값 을 직접 되 돌려 줍 니 다.즉,end()를 호출 하면 애니메이션 은 마지막 까지 멈 춥 니 다.
2.Android 플러그 인 Interpolator 의 사용:
  플러그 인 은 애니메이션 의 감쇠 효 과 를 실현 할 수 있다.예 를 들 어'점점 줄 어 들 고','점점 커진다','먼저 가속 한 후에 속 도 를 줄 일 수 있다'.
  다음은 몇 가지 자주 사용 하 는 플러그 인 입 니 다.
   1.AccelerateInterpolator:애니메이션 은 처음부터 끝까지 변화 율 이 가속 화 되 는 과정 이다.
   2.DecelerateInterpolator:애니메이션 은 처음부터 끝까지 변화 율 은 속 도 를 줄 이 는 과정 입 니 다.
   3.CycleInterpolator:애니메이션 은 처음부터 끝까지 변화 율 은 주어진 횟수 를 순환 하 는 사인 곡선 입 니 다.
   4.AccelerateDecelerateInterpolator:애니메이션 은 처음부터 끝까지 변화 율 은 먼저 가속 한 후에 속 도 를 줄 이 는 과정 이다.
   5.Linear Interpolator:애니메이션 은 처음부터 끝까지 변화 율 은 선형 변화 이다.
1.사용 방법 은:

//           
 valueAnimator.setInterpolator(new DecelerateInterpolator()); 
  ValueAnimator 의 원 리 는 소스 코드 를 볼 수 있 습 니 다.

void animateValue(float fraction) { 
  //fraction      0-1.0   ,    200-500,200ms  , 200ms ,fraction  0-1.0f      ,              ,      ,fraction      x  
  //     x          
  fraction = mInterpolator.getInterpolation(fraction); 
  mCurrentFraction = fraction; 
  int numValues = mValues.length; 
  for (int i = 0; i < numValues; ++i) { 
   mValues[i].calculateValue(fraction); 
  } 
  //             
  if (mUpdateListeners != null) { 
   int numListeners = mUpdateListeners.size(); 
   for (int i = 0; i < numListeners; ++i) { 
    mUpdateListeners.get(i).onAnimationUpdate(this); 
   } 
  } 
 } 
2.사용자 정의 플러그 인:

//  ,            ,    BaseInterpolator   ,           : 
float getInterpolation(float input );//input     0-1.0f x ,       0-1.0f y 。 
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!

좋은 웹페이지 즐겨찾기