diff --git a/samples/ApiDemos/AndroidManifest.xml b/samples/ApiDemos/AndroidManifest.xml
index 608220a53..365b0777d 100644
--- a/samples/ApiDemos/AndroidManifest.xml
+++ b/samples/ApiDemos/AndroidManifest.xml
@@ -1358,8 +1358,17 @@
+ android:label="Animation/Default Layout Animations"
+ android:enabled="@bool/atLeastHoneycomb">
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/layout/transition.xml b/samples/ApiDemos/res/layout/transition.xml
new file mode 100644
index 000000000..57b91beee
--- /dev/null
+++ b/samples/ApiDemos/res/layout/transition.xml
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/layout/transition_scene1.xml b/samples/ApiDemos/res/layout/transition_scene1.xml
new file mode 100644
index 000000000..a98da60b9
--- /dev/null
+++ b/samples/ApiDemos/res/layout/transition_scene1.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/layout/transition_scene2.xml b/samples/ApiDemos/res/layout/transition_scene2.xml
new file mode 100644
index 000000000..fda227651
--- /dev/null
+++ b/samples/ApiDemos/res/layout/transition_scene2.xml
@@ -0,0 +1,53 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/layout/transition_scene3.xml b/samples/ApiDemos/res/layout/transition_scene3.xml
new file mode 100644
index 000000000..39c4da770
--- /dev/null
+++ b/samples/ApiDemos/res/layout/transition_scene3.xml
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/transition/changebounds.xml b/samples/ApiDemos/res/transition/changebounds.xml
new file mode 100644
index 000000000..a217003ce
--- /dev/null
+++ b/samples/ApiDemos/res/transition/changebounds.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
diff --git a/samples/ApiDemos/res/transition/changebounds_fadein_together.xml b/samples/ApiDemos/res/transition/changebounds_fadein_together.xml
new file mode 100644
index 000000000..c0bb26f22
--- /dev/null
+++ b/samples/ApiDemos/res/transition/changebounds_fadein_together.xml
@@ -0,0 +1,23 @@
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/transition/changebounds_fadeout_sequential.xml b/samples/ApiDemos/res/transition/changebounds_fadeout_sequential.xml
new file mode 100644
index 000000000..df3630631
--- /dev/null
+++ b/samples/ApiDemos/res/transition/changebounds_fadeout_sequential.xml
@@ -0,0 +1,26 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/res/transition/transitions_mgr.xml b/samples/ApiDemos/res/transition/transitions_mgr.xml
new file mode 100644
index 000000000..bd1190643
--- /dev/null
+++ b/samples/ApiDemos/res/transition/transitions_mgr.xml
@@ -0,0 +1,33 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/samples/ApiDemos/src/com/example/android/apis/animation/Transitions.java b/samples/ApiDemos/src/com/example/android/apis/animation/Transitions.java
new file mode 100644
index 000000000..b2983cdb7
--- /dev/null
+++ b/samples/ApiDemos/src/com/example/android/apis/animation/Transitions.java
@@ -0,0 +1,77 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.example.android.apis.animation;
+
+import android.app.Activity;
+import android.os.Bundle;
+import android.view.View;
+import android.view.ViewGroup;
+import android.transition.Scene;
+import android.transition.TransitionInflater;
+import android.transition.TransitionManager;
+import com.example.android.apis.R;
+
+public class Transitions extends Activity {
+
+ Scene mScene1, mScene2, mScene3;
+ ViewGroup mSceneRoot;
+ TransitionManager mTransitionManager;
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.transition);
+
+ mSceneRoot = (ViewGroup) findViewById(R.id.sceneRoot);
+
+ TransitionInflater inflater = TransitionInflater.from(this);
+
+ mScene1 = Scene.getSceneForLayout(mSceneRoot, R.layout.transition_scene1, this);
+ mScene2 = Scene.getSceneForLayout(mSceneRoot, R.layout.transition_scene2, this);
+ mScene3 = Scene.getSceneForLayout(mSceneRoot, R.layout.transition_scene3, this);
+ mTransitionManager = inflater.inflateTransitionManager(R.transition.transitions_mgr,
+ mSceneRoot);
+ }
+
+ public void selectScene(View view) {
+ switch (view.getId()) {
+ case R.id.scene1:
+ mTransitionManager.transitionTo(mScene1);
+ break;
+ case R.id.scene2:
+ mTransitionManager.transitionTo(mScene2);
+ break;
+ case R.id.scene3:
+ mTransitionManager.transitionTo(mScene3);
+ break;
+ case R.id.scene4:
+ TransitionManager.beginDelayedTransition(mSceneRoot, null);
+ setNewSize(R.id.view1, 150, 25);
+ setNewSize(R.id.view2, 150, 25);
+ setNewSize(R.id.view3, 150, 25);
+ setNewSize(R.id.view4, 150, 25);
+ break;
+ }
+ }
+
+ private void setNewSize(int id, int width, int height) {
+ View view = findViewById(id);
+ ViewGroup.LayoutParams params = view.getLayoutParams();
+ params.width = width;
+ params.height = height;
+ view.setLayoutParams(params);
+ }
+}