如何在Android中定位帧动画?

时间:2011-01-11 13:32:17

标签: android graphics

我将图像作为背景加载,当触摸屏幕时,我想用frameanimation为屏幕的那部分设置动画。我的frameanimation包含9个不同的png文件,这些文件只是我想要动画的屏幕部分。当我使用整个背景作为动画的帧时,我可以使它正常工作,但是当我使用setbounds()来告诉frameanimation在哪里绘制时,我最终得到了扩展的frameanimation以填满整个屏幕,这也擦除了我的背景。如何让frameanimation保持原始大小并同时找到它?如果不清楚,我可以稍后发布代码,我现在不在comp中

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 :(得分:0)

我解决类似问题的方法是我在我想要设置动画的组件顶部的布局xml中添加了另一个图像组件。通常,图像组件为android:visibility="gone" 但是当我想运行帧动画时,我将其设置为可见并启动动画。

通过这种方式,您可以将动画组件放置在布局中的任何位置。

答案 1 :(得分:0)

好吧,经过多次努力,我终于在这里找到了BounceActivity代码:http://rsequence.com/android_blog/node/107。对于这么简单的任务来说似乎很复杂,但却能得到我想要的东西。

值得注意的是,如果其他人发现它有用,Handler()代码需要有一个开关,因此当屏幕上没有任何事情发生时,它不会将cpu周期旋转到BounceView.draw()。