Intereting Posts
Почему в любом репозитории Maven нет Android SDK Jars? Как сделать изображение вписываемым в круговую рамку в андроиде Android ListView не обновляется после notifyDataSetChanged Размещение элементов управления масштабированием в MapView Обновление LinearLayout после добавления представления Как программно изменить цвет фона диалога? Элементы панели задач Android остаются при появлении фрагмента Кодировать и декодировать растровый объект в строке base64 в Android Кордова: Возможно ли иметь разные идентификаторы приложений для платформ android и ios? Есть ли черный индикатор прогресса на белом фоне? RecyclerView GridLayoutManager: как автоматически определить количество проходов? ERROR / веб-консоль: ошибка с нечистотой: слишком много времени, затрачиваемого на обработчик выгрузки Ящик для навигации с крутильным краем в android Android: Можете ли вы вложить фрагменты? ПРЕДУПРЕЖДЕНИЕ: не указана цель, развертывание в эмуляторе

Как вращать объект 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 переместит нужное место.