Intereting Posts
Как установить маржу в диалоге Вход в библиотеку «Библиотечный код Java» для приложений Android Как использовать подготовленные инструкции в SQlite в Android? Android, отключите прокрутку для взаимодействия с SlidingPaneLayout Как проверить видимость программной клавиатуры в Android? Android.support.v4.app.getFragmentManager () возвращает null? Как вы можете справиться с увольнением DialogFragment (совместимость lib) после завершения AsyncTask Перетаскивание RecyclerView с помощью itemTouchHelper странно при перетаскивании Как использовать accessToken google plus, чтобы вывести пользователя в android из разных видов деятельности Прокрутка ListViews вместе Как заблокировать экран устройства Android Android – Учебник по блокноту – жизненный цикл – некоторые работы выполняются дважды? Как установить радиус закругленного угла для рисования цвета с помощью xml? Как передать данные из фрагмента в диалогFragment Просмотр не привязан к краху оконного менеджера

Как вращать объект ObjectAnimator?

Алфавитно-ориентированная работа:

if(mAlphaAnimation == null){ mAlphaAnimation = ObjectAnimator.ofFloat(this, "alpha", 0.0f,1.0f).setDuration(TARGET_ANIM_ALPHA_DURATION); mAlphaAnimation.setInterpolator(new AccelerateDecelerateInterpolator()); mAlphaAnimation.setStartDelay(TARGET_ANIM_ALPHA_DELAY_BASE*power); mAlphaAnimation.setRepeatCount(ValueAnimator.INFINITE); mAlphaAnimation.setRepeatMode(ValueAnimator.REVERSE); mAlphaAnimation.addUpdateListener(this); } 

Но если я хочу, чтобы он вращался, как показано ниже, это не работает.

 private void createRotateAnim(float fromDegress,float toDegress,int duration){ if(mRotateAnimation == null){ mRotateAnimation = ObjectAnimator.ofFloat(this, "rotation",fromDegress,toDegress).setDuration(duration); mRotateAnimation.setStartDelay(100); mRotateAnimation.setInterpolator(new AccelerateInterpolator()); mRotateAnimation.addUpdateListener(this); } } 

Любой может помочь мне исправить эту проблему, или это любой другой способ создания анимации с возможностью поворота.

Мне жаль моего бедного английского.

Solutions Collecting From Web of "Как вращать объект ObjectAnimator?"

Попробуйте эту простую анимацию вращения, примененную к изображению.

  ImageView imageview = (ImageView)findViewById(R.id.myimage); RotateAnimation rotate = new RotateAnimation(180, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); rotate.setDuration(500); imageview.startAnimation(rotate); 

Этот ответ справедлив только для вопросов, верно, что область Clickable будет отличаться от текущей позиции View . Пожалуйста, проверьте этот вопрос, чтобы сделать правильную кликовую область. Кнопка не может быть нажата после TranslateAnimation

ObjectAnimator этого ObjectAnimator вместо ObjectAnimator .

 ImageView imageview = (ImageView)findViewById(R.id.image); ObjectAnimator imageViewObjectAnimator = ObjectAnimator.ofFloat(imageview , "rotation", 0f, 360f); imageViewObjectAnimator.setDuration(1000); // miliseconds imageViewObjectAnimator.start(); 

EDIT. Поскольку этот вопрос привлек некоторое внимание, позвольте мне объяснить, почему использовать ObjectAnimator вместо других аниматоров Transition

Дело в использовании ObjectAnimator заключается в том, что он перемещает видимую и интерактивную область элемента, если вы используете другой метод анимации, например, анимацию перехода или некоторые другие аниматоры, и предположим, что если вы хотите переместить Button слева внизу Экрана в верхнем левом углу, он будет перемещать только видимую область, но не сама Button , зона с кликом по-прежнему будет находиться в предыдущей позиции, в этом случае область с щелчком по-прежнему будет находиться внизу слева, а не вверху слева Где вы переместили кнопку.

Если вы сделаете то же самое с ObjectAnimator , как видимая область, так и область с ObjectAnimator переместит нужное место.