NineOldAndroids: установить круг просмотра - PullRequest
15 голосов
/ 29 февраля 2012

Я использую замечательный фреймворк NineOldAndroids, но я не могу найти ничего, что могло бы установить стержень для моих анимированных просмотров.В частности, я пытаюсь сделать анимацию scaleX + scaleY с осью вращения на верхнем левом краю, поэтому pivotX = 0 и pivotY = 0. На сотах и ​​выше я бы просто установил myView.setPivotX(0) и myView.setPivotY(0), но как это сделать для устройств с предварительной сотовой структурой с NineOldAndroids?Я попробовал следующее:

AnimatorSet set = new AnimatorSet();
set.playTogether(
    ObjectAnimator.ofFloat(myView, "pivotX", -(myView.getWidth() / 2), -(myView.getWidth() / 2)),
    ObjectAnimator.ofFloat(myView, "pivotY", -(myView.getHeight() / 2), -(myView.getHeight() / 2)),
    ObjectAnimator.ofFloat(myView, "scaleX", 0, 1),
    ObjectAnimator.ofFloat(myView, "scaleY", 0, 1),
    ObjectAnimator.ofFloat(myView, "alpha", 0, 1)
);
set.setDuration(1000).start();

, но это не работает, ось остается в центре обзора.

Не могли бы вы мне помочь, пожалуйста?

Спасибо;)

Ответы [ 2 ]

18 голосов
/ 18 апреля 2012

Спасибо автору Джейку Уортону, вот решение:

AnimatorProxy.wrap(myView).setPivotX(0);

в любое время, даже после , позвонив ObjectAnimator.start().

15 голосов
/ 19 февраля 2013

AnimatorProxy.wrap (...) не оказал никакого влияния в моем случае.Тем не менее, следующая строка сделала трюк:

ViewHelper.setPivotY(myView, 0)
...