7

I've been trying to use the new fancy animations that come with the L developer preview, but I'm having a lot of difficulties. In particular, I am not seeing any fancy animations. I'm trying to use the Explode exit transition. Here's the code:

public class ActivityA extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // inside your activity
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

        // set an exit transition
        getWindow().setExitTransition(new Explode());
        setContentView(R.layout.activity_a);

        // Find our button and add our click handler
        Button button = (Button)findViewById(R.id.buttonA);
        button.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                // Transition to activity B
                Intent intent = new Intent(ActivityA.this, ActivityB.class);
                startActivity(intent);
            }
        });
    }
}
Alex Lockwood
  • 83,063
  • 39
  • 206
  • 250
Alex Sullivan
  • 562
  • 7
  • 20

3 Answers3

13

Instead of starting another activity using startActivity(intent); use the following statement.

startActivity(intent,ActivityOptions.makeSceneTransitionAnimation(this).toBundle());

I started another activity as said above and it worked for me.

It's said in google documentation Defining Custom Animations as follows.

enter image description here

Harish_N
  • 2,249
  • 3
  • 23
  • 34
3

Solved the problem - you need the

getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);

call on the activity you are transitioning too as well!

Alex Sullivan
  • 562
  • 7
  • 20
0

Try this.

public class MyActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        // enable transitions
        getWindow().requestFeature(Window.FEATURE_CONTENT_TRANSITIONS);
        setContentView(R.layout.activity_my);
    }

    public void onSomeButtonClicked(View view) {
        getWindow().setExitTransition(new Explode());
        Intent intent = new Intent(this, MyOtherActivity.class);
        startActivity(intent,
                      ActivityOptions
                          .makeSceneTransitionAnimation(this).toBundle());
    }
}

requestFeature in onCreate an setExitTransition before startActivity

Zar E Ahmer
  • 33,936
  • 20
  • 234
  • 300