Я пытаюсь сделать imageview, который вращается при скольжении по экрану. Я устанавливаю поворачивать анимацию для 180 градусов, и она работает отдельно. Я устанавливаю переводить анимацию, и она работает отдельно. Когда я комбинирую их, я получаю imageview, который делает большую спираль. Я хотел бы, чтобы imageview вращался вокруг центра imageview, будучи переведенным.
AnimationSet animSet = new AnimationSet(true);
//Translate upwards and to the right.
TranslateAnimation anim =
new TranslateAnimation(
Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, +80.0f,
Animation.ABSOLUTE, 0.0f, Animation.ABSOLUTE, -100.0f
);
anim.setInterpolator(new DecelerateInterpolator());
anim.setDuration(400);
animSet.addAnimation(anim);
//Rotate around center of Imageview
RotateAnimation ranim = new RotateAnimation(0f, 180f, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); //, 200, 200); // canvas.getWidth() / 2, canvas.getHeight() / 2);
ranim.setDuration(400);
ranim.setInterpolator(new DecelerateInterpolator());
animSet.addAnimation(ranim);
imageBottom.startAnimation(animSet);
Ну, я думаю, что я "резиновый утенок".
Порядок применения анимации имеет значение. Я поменял порядок с translate/rotate на rotate/translate, и это работает.