내가 사용 x=0
에서 x=200
에 단추를 애니메이션하다고 말하고 : 버튼을 x=100
에있을 때애니메이션은
ObjectAnimator animator = ObjectAnimator.ofFloat(button, "x", 0f, 200f);
animator.setInterpolator(new AccelerateDecelerateInterpolator());
animator.start();
지금, 나는 애니메이션을 취소 할 수 있습니다. animator.cancel()
으로 전화하면 버튼이 갑자기 멈 춥니 다. 내가 달성하고자하는 것은 x
값이 점차적으로 느려지고 (다소 DecelerateInterpolator
과 같음), x=120
에 정차합니다.
물론, cancel()
애니메이션을 시작하고 새로운 감속 애니메이터를 시작할 수 있습니다. 그러나 이것은 계정의 현재 속도를 고려하지 않아 이상한 행동을 유발합니다.
어떻게하면됩니까?
좋은 생각, 나는 그 라인에 뭔가 의미가있다. 'getCancellationInterpolation (float)'에서 수식을 어떻게 만들었습니까? 그래프는 다소 선형 적으로 보이지만 맛의 문제입니다. 어쨌든, 아직 없다면,이 단계를 더 진행하고 Niek이 암시 한 것처럼'DecelerateInterpolator.getInterpolation (float)'을 사용할 수 있습니다. –
@Gil 수식은'DecelerateInterpolator' 소스 코드에서 가져옵니다. –
내 직감이 정확했습니다. 귀하의 두 번째 upvote 내입니다 : –