Tom
Tom

Reputation: 141

Android Alpha Animation: Alpha value jumps back to old value after Animation ended

I have a ImageButton View on a Layout. If the users clicks the ImageButton the button should fade out.

The buttons fadeout animation will be started like this:

public void buttonClicked(View aButton){

    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f);
    aAnim.setDuration(500);

    aButton.startAnimation(aAnim);

}

This works, but as soon as the ImageButton is faded out, its Alpha Value jumps right back to 1.0 and the button is visible again.

I solved it temporarily with a Animation Listener that sets the ButtonImage to invisible at the end of the Animation but that seems to be a odd solution to me.

What do I have to do to keep the buttons Alpha Value at its last value of the Animation?

Thank You.

Upvotes: 11

Views: 6751

Answers (3)

VITROXMAN
VITROXMAN

Reputation: 226

you should also check this on your XML, for some scenarios it happens

android:animateLayoutChanges=“true”

Upvotes: 0

Salman Amintabar
Salman Amintabar

Reputation: 39

If you want to set new value when animation finished, you must set the 'setFillAfter' to true.

public void buttonClicked(View aButton){    
    final Animation aAnim = new AlphaAnimation(1.0f, 0.0f);
    aAnim.setDuration(500);

    aAnim.setFillAfter(true);
    aButton.startAnimation(aAnim);
}

Upvotes: 3

MikeC
MikeC

Reputation: 735

try using aAnim.setFillAfter(true);

Upvotes: 29

Related Questions