Hi,
I had the same problem.
you can execute a runnable to start your frame animation like this
Handler startHandler = new Handler();
startHandler.postDelayed(new Runnable(){
public void run() {
//animate
animate();
}}, 100);
hope it helps you
On Tuesday, November 23, 2010 5:34:50 PM UTC+9, Serdel wrote:
>
> Hello,
>
> I have problems with AnimationDrawable which i use to animate a
> 'striped' gif file. In fact I have two animations that I want to use
> in one activity (and they must be used in the same activity). Both
> animation are build with 7 frames :
>
> <?xml version="1.0" encoding="utf-8"?>
> <animation-list xmlns:android="http://schemas.android.com/apk/res/
> android"
> android:id="@+id/analyse" android:oneshot="false">
> <item android:drawable="@drawable/analyse_frame_0"
> android:duration="50" />
> <item android:drawable="@drawable/analyse_frame_1"
> android:duration="50" />
> <item android:drawable="@drawable/analyse_frame_2"
> android:duration="50" />
> <item android:drawable="@drawable/analyse_frame_3"
> android:duration="50" />
> <item android:drawable="@drawable/analyse_frame_4"
> android:duration="50" />
> <item android:drawable="@drawable/analyse_frame_5"
> android:duration="50" />
> <item android:drawable="@drawable/analyse_frame_6"
> android:duration="50" />
> </animation-list>
>
> The second one is the same, just different files but also 7 frames.
>
> In the onCrate() method of my activity I start the first animation and
> launch a 15 second timer (the idea is that the first animation is
> playing when the timer ticks). I use the following code:
>
> //The onCreate method of the activity class.
> public void onCreate(Bundle savedInstanceState) {
> super.onCreate(savedInstanceState);
> setContentView(R.layout.third);
>
> setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
>
> layout =
> (LinearLayout)findViewById(R.id.widget40);
> analyseImage = (ImageView)
> findViewById(R.id.ImageView02);
>
> analyseImage.setBackgroundResource(R.drawable.analyse_animation);
>
> analyseAnimation = (AnimationDrawable)
> analyseImage.getBackground();
> analyseAnimation.start();
>
> MyCount counter = new MyCount(15000,1000);.
> counter.start();
> }
>
>
> Unfortunately this does not work. However when the timer finishes I
> want to start a second animation and launch a seperate thread. And
> this works - when I start the animation in the 'onFinish' method of
> the timer, the animation starts properly:
>
> //the onFinish() method of timer.
> public void onFinish()
> {
>
> layout.setBackgroundResource(R.drawable.id_app4);
>
>
> analyseImage .destroyDrawingCache();
>
> analyseImage .setVisibility(View.GONE);
>
> connectImage = (ImageView)
> findViewById(R.id.ImageView02);
>
> connectImage.setBackgroundResource(R.drawable.connect_animation);
> connectAnimation =
> (AnimationDrawable) analyseImage.getBackground();
>
> connectAnimation.start();
>
> startThread(connectTh,myConnector);
> }
>
> Unfortunately this does not work so good because it only works when I
> comment-out the first one - otherwise I get an Exception :
> 'OutOfMemoryError: bitmap size exceeds VM budget'. As you see I try to
> release some memory but this does not help. This is a crucial problem,
> since my application is working in a 'ring' of couple activities. So
> when I finish the last one it goes back to the first one - it is
> possible that the activity with animations will be called many times
> in the life-time of the whole app. So I need to release the memory
> from the second one as well.
>
> So now here are my questions:
> - why can't I start the first animation instantly after the activity
> starts and how to do this?
> - How to release the memory from the animations?
>
> Can anyone please help?
>
> PS: I am working on Android 1.5
--
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en