Android 속성 애니메이션 ValueAnimator 와 플러그 인 설명
3671 단어 AndroidValueAnimator플러그 인
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 。
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Bitrise에서 배포 어플리케이션 설정 테스트하기이 글은 Bitrise 광고 달력의 23일째 글입니다. 자체 또는 당사 등에서 Bitrise 구축 서비스를 사용합니다. 그나저나 며칠 전 Bitrise User Group Meetup #3에서 아래 슬라이드를 발표했...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.