Как разместить FrameAnimation в Android? - PullRequest
0 голосов
/ 11 января 2011

У меня есть изображение, загруженное в качестве фона, и при касании экрана я хочу анимировать эту часть экрана с помощью кадровой анимации. Моя кадровая анимация состоит из 9 различных файлов PNG, которые сделаны из той части экрана, которую я хочу анимировать. Я могу заставить его работать, когда я использую весь фон в качестве кадров для анимации, но когда я использую setbounds (), чтобы сообщить фрейм-анимации, где рисовать, я получаю масштабирование фрейма для заполнения всего экрана, что также стирает мой фон. Как я могу заставить рамочную анимацию оставаться в исходном размере и одновременно находить ее? Я могу опубликовать код позже, если это не ясно, я сейчас не на компе

public boolean onTouchEvent (MotionEvent event)
{
   switch (event.getAction())
   {
      case MotionEvent.ACTION_DOWN:
         this.setBackgroundResource (R.drawable.nova);
         Object bg = this.getBackground
         touchAni.setBounds (152, 156, 152+140, 156+140);

         touchAni = (AnimationDrawable) bg;

         if (!touchAni.isRunning())
            touchAni.start ();
         else
         {
            touchAni.stop();
            touchAni.start();
         }
   }
}

Ответы [ 2 ]

0 голосов
/ 12 января 2011

Что ж, после долгих раздумий я наконец нашел здесь код BounceActivity: http://rsequence.com/android_blog/node/107. Кажется действительно сложным для такой простой задачи, но дает мне то, что я хочу.

Следует отметить, что, если кто-то еще сочтет это полезным, в кодах Handler () должен быть переключатель, чтобы он не переводил циклы ЦП в BounceView.draw (), когда на экране ничего не происходит.

0 голосов
/ 11 января 2011

Способ решения аналогичной проблемы заключается в том, что я добавил еще один компонент изображения в свой макет XML поверх компонента, который я хочу анимировать.Обычно этот компонент изображения android:visibility="gone", но когда я хочу запустить анимацию кадра, я устанавливаю его видимым и запускаю анимацию.

Таким образом, вы можете разместить компонент анимации в любом месте в макете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...