Что у меня
У меня есть изображение стрелки (например, левое). Когда пользователь нажимает на него, он должен вращаться на 180 градусов с анимацией и должен выглядеть как правильный.
Что я сделал
private void rotate(float degree, final int toggleV) {
final RotateAnimation rotateAnim = new RotateAnimation(0.0f, degree,
RotateAnimation.RELATIVE_TO_SELF, 0.5f,
RotateAnimation.RELATIVE_TO_SELF, 0.5f);
rotateAnim.setDuration(500);
toggle.startAnimation(rotateAnim);
rotateAnim.setAnimationListener(new Animation.AnimationListener() {
@Override
public void onAnimationStart(Animation animation) {
}
@Override
public void onAnimationEnd(Animation animation) {
if (toggleV == 1)
toggle.setImageResource(R.drawable.toggle_up);
else
toggle.setImageResource(R.drawable.toggle_down);
}
@Override
public void onAnimationRepeat(Animation animation) {
}
});
}
Проблема
Я вижу, что анимация работает нормально, но при настройке изображения немного мерцает. Может быть, из-за разницы во времени, когда анимация заканчивается и изображение установлено.
Как я могу удалить эту проблему мерцания? У вас есть лучший подход к этому?