0

I'm doing things pretty simply but I have a lot of frames. It seems to be the amount of frames that causes the exception. I've tried to reduce the size of each frame, but that doesn't seem to effect much. This is even before the animation starts. Short of showing less frames, what can be done? Is there another approach?

Adapted from sample code:

public class XMLAnimation extends Activity
{
    class MyAnimationRoutine extends TimerTask
    {
        MyAnimationRoutine()
        {
        }

        @Override
        public void run()
        {
            ImageView img = (ImageView) findViewById(R.id.simple_anim);
            AnimationDrawable frameAnimation = (AnimationDrawable) img
                    .getBackground();

            frameAnimation.start();
        }
    }

    class MyAnimationRoutine2 extends TimerTask
    {
        MyAnimationRoutine2()
        {
        }

        @Override
        public void run()
        {
            ImageView img = (ImageView) findViewById(R.id.simple_anim);
            AnimationDrawable frameAnimation = (AnimationDrawable) img
                    .getBackground();

            frameAnimation.stop();
        }
    }

    @Override
    public void onCreate(Bundle icicle)
    {
        super.onCreate(icicle);
        setContentView(R.layout.main);
    }

    @Override
    protected void onResume()
    {
        super.onResume();

        ImageView img = (ImageView) findViewById(R.id.simple_anim);
        img.setBackgroundResource(R.anim.simple_animation);

        MyAnimationRoutine mar = new MyAnimationRoutine();
        MyAnimationRoutine2 mar2 = new MyAnimationRoutine2();

        Timer t = new Timer(false);
        t.schedule(mar, 100);
        Timer t2 = new Timer(false);
        t2.schedule(mar2, 5000);
    }
}

the layout:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
      <ImageView android:id="@+id/simple_anim"
          android:layout_width="wrap_content"
          android:layout_height="wrap_content"
          android:gravity="center"
          android:layout_centerHorizontal="true"
           /> 
<TextView  
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:text="Hello World, XMLAnimation"
    />
</LinearLayout>

the animation list:

<?xml version="1.0" encoding="utf-8"?>
 <animation-list xmlns:android="http://schemas.android.com/apk/res/android" id="selected" android:oneshot="false">
    <item android:drawable="@drawable/frame1" android:duration="50" />
    ...
    <item android:drawable="@drawable/frame40" android:duration="50" />
 </animation-list>
James John McGuire 'Jahmic'
  • 11,728
  • 11
  • 67
  • 78

1 Answers1

0

After some minor refactoring and code clean-up, wiping data in the emulator, and starting fresh, these problems went away. Testing on the actual device, this part of code works quite smoothly.

So, sometimes, just starting fresh works out.

James John McGuire 'Jahmic'
  • 11,728
  • 11
  • 67
  • 78