Romain,

Thank you for the suggestion. I just tried but rotation still starts
before GridView completes.

Correct me if I misunderstand but here is what may happen:

In GridView, a layoutAnimation is used.   This
LayoutAnimationController in turns specifies animation for each child
view.

So what I need is an "onAnimationEnd"  for LayoutAnimationController -
which should be "isDone()"  based on API documentation.

##--
I applied  Listener onAnimationEnd as follow:

LayoutAnimationController animControl = mImageView.getLayoutAnimation
();
...
Animation anim = animControl.getAnimation() // or getAnimationForView
(...);
anim.setAnimationListener(this);
,,,

The "anim" here is individual child view, instead of the entire
GridView whose completion is what I need.

Now if I count how many times onAnimationEnd is called & when count
reaches my child view count,
I can apply the 2nd animation. But that amounts to implementing my own
"isDone()" with hard coded child view count.

##---------------------------------------------------------------
In GridView, I specified a layoutAnimation (not android:anim which
appears in layout_random_fade):

<FrameLayout .../>
        <GridView
                android:layoutAnimation="@anim/layout_random_fade"   <--
android:anim in layout_random_fade
                android:layout_width="fill_parent"
                android:layout_height="fill_parent"
       />
       <TextView
        ...
       />

On Jun 8, 3:17 pm, Romain Guy <romain...@google.com> wrote:
> Use a layout animation listener instead.
>
>
>
> On Mon, Jun 8, 2009 at 3:00 PM, az9702<az9...@gmail.com> wrote:
>
> > Hi,
>
> > I am implementing a two-step animation:
> > (1) Displaying a set of images using Grid layout (similar to Api Demo
> > LayoutAmination4)
> > (2) Upon (1) completion, rotate out Grid layout around Y-axis & rotate
> > in another layout
>
> > Step#2 is similar to Api Demo Rotate3dAnimation but it is triggered w/
> > o any user input.
> > As soon as (1) is completed, (2) should occur automatically.
>
> > To do that, I use  LayoutAnimationController isDone to detect if all
> > child views of the grid layout are animated:
>
> > ...
>
> > LayoutAnimationController animControl = mImageView.getLayoutAnimation
> > ();
> > ...
> >  if(animControl.isDone()) {
> >                Toast.makeText(this, "Animation Done - start rotation",
> > 2000).show();
>
> >                applyRotation(0.0f, 90.0f);
> >        }
>
> > The above did not work  - rotation always starts before the Grid
> > layout is completed.
>
> > As a workaround, I am using post with a delay - but I want to do w/o
> > any guess delays.
> > I also experiemented Animation "hasEnded()" but no effect.
>
> > Does anyone have similar experience with the controller ?  Is "IsDone
> > ()" the correct way to detect the end of the first animation ?
>
> > Thanks in advance.
>
> > - Simon
>
> --
> Romain Guy
> Android framework engineer
> romain...@android.com
>
> Note: please don't send private questions to me, as I don't have time
> to provide private support.  All such questions should be posted on
> public forums, where I and others can see and answer them
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to