The transition framework allows the developer to apply one or more animations to a view hierarchies.
Mainactivity.java
1 Packagecom.dhn.learntransition;2 3 ImportAndroid.annotation.TargetApi;4 Importandroid.app.Activity;5 ImportAndroid.os.Build;6 Importandroid.support.v7.app.ActionBarActivity;7 ImportAndroid.os.Bundle;8 Importandroid.transition.AutoTransition;9 ImportAndroid.transition.Scene;Ten Importandroid.transition.Transition; One ImportAndroid.transition.TransitionManager; A ImportAndroid.view.Menu; - ImportAndroid.view.MenuItem; - ImportAndroid.view.View; the ImportAndroid.view.ViewGroup; - ImportAndroid.view.animation.AccelerateDecelerateInterpolator; - ImportAndroid.widget.Button; - ImportAndroid.widget.TextView; + - + Public classMainactivityextendsActivity { A at Scene Mascene; - Scene Manotherscene; - ViewGroup msceneroot; - BooleanFirst =true; - - in @TargetApi (build.version_codes. KITKAT) - @Override to protected voidonCreate (Bundle savedinstancestate) { + Super. OnCreate (savedinstancestate); - Setcontentview (r.layout.activity_main); the * $Msceneroot =(ViewGroup) Findviewbyid (r.id.scene_root);Panax Notoginseng - //Create the scenes theMascene = Scene.getsceneforlayout (Msceneroot, R.layout.a_scane, This); +Manotherscene = AScene.getsceneforlayout (Msceneroot, R.layout.another_scene, This); the + //create transition, set properties - FinalTransition Transition =Newautotransition (); $Transition.setduration (5000); $Transition.setinterpolator (Newacceleratedecelerateinterpolator ()); - -Button starttransition =(Button) Findviewbyid (r.id.transition); theStarttransition.setonclicklistener (NewView.onclicklistener () { - @OverrideWuyi Public voidOnClick (View v) { the if(first) { - //Use the default transition Wu transitionmanager.go (Manotherscene, transition); -First =false; About}Else { $ transitionmanager.go (Mascene, transition); -First =true; - } - } A }); + } the - $}
Activity_main.xml
1<linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android"2Android:id= "@+id/master_layout"3Android:layout_width= "Match_parent"4android:orientation= "Vertical"5android:layout_height= "Match_parent" >6 7<Button8Android:id= "@+id/transition"9Android:layout_width= "Match_parent"Tenandroid:layout_height= "Wrap_content" Oneandroid:text= "Starttransition"/> A -<framelayout android:id= "@+id/scene_root" -android:layout_height= "Wrap_content" theAndroid:layout_width= "Wrap_content" > -<include layout= "@layout/a_scane"/> -</FrameLayout> - +</LinearLayout>
A_scene.xml
<?xml version= "1.0" encoding= "Utf-8"? ><linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android"Android:id= "@+id/scene_container"Android:layout_width= "Match_parent"android:orientation= "Vertical"Android:layout_height= "Match_parent" > <TextView Android:id= "@+id/text_view1"Android:layout_height= "Wrap_content"Android:layout_width= "Wrap_content"Android:text= "Text Line 1"/> <TextView Android:id= "@+id/text_view2"Android:layout_height= "Wrap_content"Android:layout_width= "Wrap_content"Android:text= "Text Line 2"/></linearlayout>
Another_scene.xml
<?xml version= "1.0" encoding= "Utf-8"? ><linearlayout xmlns:android= "Http://schemas.android.com/apk/res/android"Android:id= "@+id/scene_container"android:orientation= "Vertical"Android:layout_width= "Match_parent"Android:layout_height= "Match_parent" > <TextView Android:id= "@+id/text_view2"Android:layout_height= "Wrap_content"Android:layout_width= "Wrap_content"Android:text= "Text Line 2"/> <TextView Android:id= "@+id/text_view1"Android:layout_height= "Wrap_content"Android:layout_width= "Wrap_content"Android:text= "Text Line 1"/></linearlayout>
Frame diagram:
Summarize:
The view inside the layout file a_scene.xml,another_scene.xml has the same ID and is included under the same rootview.
Android-transitions use