2011-10-08 5 views
1

Я использовал следующий сегмент кода для анимации воздушного шара. Здесь воздушный шар - ничто, но кнопка и анимация, использующая трансляционную анимацию.Android анимация не работает должным образом

Анимация работает нормально, но в то время как воздушный шар перемещается, некоторые белые точки отображаются (см. Изображение). Зачем? Любое решение?

Смотрите эту картинку:

enter image description here

  ------------- 
    anim = new TranslateAnimation(0, 360,1000,-100); 
    anim.setRepeatMode(Animation.REVERSE); 
    anim.setRepeatCount(Animation.INFINITE); 
    anim.setDuration(10000L); 
    anim.setInterpolator(new AccelerateDecelerateInterpolator()); 

    btnBalloon.setAnimation(anim); 

ответ

2

Вы не очистное холст на каждом новом кадре. Точки - это край предыдущих экземпляров воздушного шара, которые все еще видны.

Каждый раз, когда холст рисуется, он не начинается с нуля, он рисует поверх того, что уже существует. Это означает, что каждый раз, когда воздушный шар нарисован, он нарисован поверх каждого другого экземпляра. Я предполагаю, что у вашего изображения шара есть черный фон? Чтобы исправить это, вам нужно «очистить» ваш холст, заново нарисовав задний фон на каждом кадре. В этом случае вам нужно нарисовать черный прямоугольник, который покрывает весь кадр, до рисунок воздушного шара.

Смежные вопросы