I am trying to animate a view which expands and shrinks back to the initial size. I tried using animation set to add two animations so that the second animation will start after the first animation but was not able to get it working.
AnimationSet expandAndShrink = new AnimationSet(true);
ScaleAnimation expand = new ScaleAnimation(
1f, 1.5f,
1f, 1.5f,
Animation.RELATIVE_TO_PARENT, 0,
Animation.RELATIVE_TO_PARENT, 0);
ScaleAnimation shrink = new ScaleAnimation(
1.5f, 1f,
1.5f, 1f,
Animation.RELATIVE_TO_PARENT, 1f,
Animation.RELATIVE_TO_PARENT, 1f);
expandAndShrink.addAnimation(expand);
expandAndShrink.addAnimation(shrink)
expandAndShrink.setFillAfter(true);
expandAndShrink.setDuration(1000);
expandAndShrink.setInterpolator(new AccelerateInterpolator(1.0f));
view.bringToFront();
view.startAnimation(expandAndShrink);
I really appreciate any help to get it working. Thanks in advance
I have fixed "expand" and "shrink" animations, and added durations for both. Also you should add shrink.setStartOffset(1000); so second animation starts later
I'll explain the way I chose to animate layout changes.
Android has a special Animation class named
ScaleAnimation
where we can smoothly expand or collapse views.Show view by expanding diagonally:
where the constructor used is:
So you can change values accordingly.
For example, the below example would animate view horizontally:
You can change
fromX
,toX
,fromY
&toY
according to the need.For example if view is shown and you have to just expand it, put
fromX
andfromY
to1.0f
, andtoX
,toY
according to the need.Now, using the same class you can create a more cool effect for showing view by expanding view a little bit extra and then shrinking it to original size. For this purpose,
AnimationSet
will be used. So it would create a kind of bubble effect.Below example is for creating bubble effect for showing the view: