Как повернуть вытаскиваемый 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);
}
Но если я хочу повернуть drawable, как показано ниже, он не работает.
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);
}
}
Любой может помочь мне исправить эту проблему, или это любой другой способ создания анимации с возможностью поворота.
Мне жаль моего бедного английского.
Ответы
Ответ 1
Попробуйте эту простую анимацию вращения, применяемую к изображению.
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
Ответ 2
Попробуйте вместо ObjectAnimator
.
ImageView imageview = (ImageView)findViewById(R.id.image);
ObjectAnimator imageViewObjectAnimator = ObjectAnimator.ofFloat(imageview ,
"rotation", 0f, 360f);
imageViewObjectAnimator.setDuration(1000); // miliseconds
imageViewObjectAnimator.start();
ИЗМЕНИТЬ
Поскольку этот вопрос привлек некоторое внимание, позвольте мне объяснить, почему использовать ObjectAnimator
вместо других аниматоров перехода
Дело в использовании ObjectAnimator
заключается в том, что он перемещает видимую и интерактивную область элемента, если вы используете другой метод анимации, например, анимацию перехода или некоторые другие аниматоры, и пусть скажет, хотите ли вы переместить Button
в левом нижнем углу экрана в верхнем левом углу, он перемещает только видимую область, но не сам Button
, область с щелчком по-прежнему будет находиться в предыдущей позиции, в этом случае область с клики будет по-прежнему в левом нижнем углу, а не слева вверху, где вы переместили кнопку.
Если вы сделаете то же самое с ObjectAnimator
, как видимая область, так и область с щелчком переместит нужное место.