Android 회전 애니메이션(RotateAnimation)무한 회전

1479 단어 Android
최근 에 회전 진도 조 의 효과 가 필요 합 니 다.미술 은 그림 을 제 공 했 습 니 다.ImageView 로 회전 애니메이션 을 사용 한 결과 문제 가 있 습 니 다.바로 모든 회전 이 끝 난 후에 멈 추 는 것 입 니 다.인터넷 에서 자 료 를 찾 아 보면 기본 적 인 애니메이션 차이 가 먼저 속 도 를 내 고 속 도 를 줄 여 정지 되 었 기 때 문 이 라 고 합 니 다.LinearInterpolator 라 는 차이 기 를 사용 하면 등 속 회전 을 할 수 있 습 니 다.해 보 니 속 도 를 빠르게 줄 이 는 문제 가 없 었 지만 한 바퀴 가 끝 날 때마다 멈 추 었 다.그 전에 멈 추 는 시간 보다 훨씬 짧 았 지만 육안 으로 는 멈 추 는 것 을 똑똑히 볼 수 있 었 다.그러면 안 된다.마지막 으로 해결 방안 을 찾 았 습 니 다.바로 toDegrees 와 duration 을 만 배 증가 시 키 는 것 입 니 다.그러면 5 시간 정도 돌려 야 멈 추 는 것 은 아주 작은 정지 시간 을 만 배 약화 시 키 는 것 과 같 습 니 다.거의 무시 할 수 있 고 이 문 제 를 잘 해결 할 수 있 습 니 다.구체 적 인 코드 는 다음 과 같 습 니 다.
RotateAnimation animation;
int magnify = 10000;
int toDegrees = 360;
int duration = 2000;
toDegrees *= magnify;
duration *= magnify;
animation = new RotateAnimation(0,toDegrees,
        Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);
animation.setDuration(duration);
LinearInterpolator lir = new LinearInterpolator();
animation.setInterpolator(lir);
animation.setRepeatCount(Animation.INFINITE);
animation.setRepeatMode(Animation.RESTART);
mIvBg.startAnimation(animation);

좋은 웹페이지 즐겨찾기