2012-01-13 2 views
1

RotateAnimation은 내가 멈추기 전까지 만 말하면 ImageView에 무기한 애니메이션을 적용합니다. 다음과 같이 내가 설정 한 애니메이션이 : 나는 imageView.cancelAnimation()를 호출 할 때, 그것은 가능한 내가 그것을하는 대신 (또는에서의 어떤 각도) 바로가 종료 어떤 프레임에서 애니메이션을 "동결"할 수있다취소 할 때 RotateAnimation이 재설정되지 않게합니다.

Animation spin = new RotateAnimation(0.0f, 1800.0f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 
    spin.setInterpolator(new LinearInterpolator()); 
    spin.setRepeatCount(Animation.INFINITE); 
    spin.setDuration(5000); 
    imageView.setAnimation(spin); 

첫 번째 프레임으로 재설정 하시겠습니까?

답변

0

RotateDrawable에 이미지 내용을 배치하고 애니메이션을 사용하는 대신 ImageView으로 설정하는 것이 좋습니다. 간단한 핸들러를 사용하여 setImageLevel()을 반복적으로 호출하여 회전 각도를 조정하여 전환 효과를 계속 애니 메이트 할 수 있습니다.

애니메이션이 정지 할 때 Handler에 게시를 중단하면 이미지가 마지막으로 설정된 레벨 값으로 유지됩니다. Handler에 대한 게시물을 다시 시작하여 원하는 경우 다시 시작할 수 있습니다.

또 다른 옵션은 맞춤 ViewGroup을 만들고 getChildStaticTransformation()을 사용하여 어린이에게 맞춤 변환을 적용하는 것입니다. ImageView. 애니메이션 단계를 수동으로 처리 할 수 ​​있으므로 원하는 시점에서 시작/중지 할 수 있지만 Transformation은 애니메이션 시스템에서보기를 애니메이션으로 사용하여 결과를 더 가깝게 얻을 수 있습니다.

HTH

+0

나는이 작품을 추측한다. 문제는 'RotateDrawable'이 불확실한 진행 막대로 사용할 때 부드럽지 않다는 것입니다. 불확실한 진행률 막대의 프레임 속도 또는 속도를 어떻게 높일 수 있는지 알고 있습니까? – Brian

+0

공개적으로 볼 수 없습니다. 'ProgressBar'는'AnimatedRotateDrawable'을 사용하는데,이 속성들은 숨겨진 클래스입니다. 보기를 변환하기위한 또 다른 옵션이 추가되었습니다. 보다 부드러움을 얻으려면 인터폴 레이터의 메서드를 수동으로 호출하여 각 단계에서 애니메이션을 얼마만큼 조정해야하는지 알 필요가 있습니다. – Devunwired

+0

RotateDrawable을 사용하는 예가 있습니까? 안드로이드 SDK에서 아무 것도 찾을 수 없습니다. –

2

나는 그것의 결정 각도에 도착 후 자사의 회전 위치를 유지하는 응용 프로그램을 가지고있다. 나는 꽤 언젠가 주변을 수색하고 결국 setFillAfter() 메소드를 호출하는 것을 발견했다. 그러면 회전이 재설정되지 않습니다.

RotateAnimation rotate = new RotateAnimation(startingPoint, value, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); 
    image.setAnimation(rotate); 

    rotate.setDuration(ROTATION_INTERVAL); 
    rotate.setFillAfter(true); 
관련 문제