Android Transition框架使用--Demo(2)

来源:互联网 发布:血腥知乎 编辑:程序博客网 时间:2024/06/05 08:14

这篇文章接Transition框架介绍,给出一个完整的Demo。

1 Activity代码

public class TransitionActivity2 extends Activity implements View.OnClickListener {    RelativeLayout rl;    //scenes to transition    private Scene scene1, scene2;    //transition to move between scenes    private Transition transition;    //flag to swap between scenes    private boolean start;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);//        getWindow().requestFeature(Window.FEATURE_ACTIVITY_TRANSITIONS);        setContentView(R.layout.activity_transition_start2);        rl=(RelativeLayout)findViewById(R.id.base);        rl.setOnClickListener(this);        //get the layout ID        RelativeLayout baseLayout = (RelativeLayout)findViewById(R.id.base);//first scene        ViewGroup startViews = (ViewGroup)getLayoutInflater()                .inflate(R.layout.activity_transition_start2, baseLayout, false);//second scene        ViewGroup endViews = (ViewGroup)getLayoutInflater()                .inflate(R.layout.activity_transition_end2, baseLayout, false);        //create the two scenes        scene1 = new Scene(baseLayout, startViews);        scene2 = new Scene(baseLayout, endViews);        //create transition, set properties        transition = new AutoTransition();        transition.setDuration(2000);        transition.setInterpolator(new AccelerateDecelerateInterpolator());//initialize flag        start=true;    }    @Override    public void onClick(View v) {//check flag        if(start) {            TransitionManager.go(scene2, transition);            start=false;        }        else {            TransitionManager.go(scene1, transition);            start=true;        }    }}

2 activity_transition_main3.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:orientation="vertical"    android:id="@+id/master_layout">    <TextView        android:id="@+id/tv_title"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_alignParentStart="true"        android:layout_alignParentTop="true"        android:layout_marginTop="53dp"        android:text="Title"        android:textAppearance="?android:attr/textAppearanceLarge" />    <FrameLayout android:id="@+id/scene_root"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <include layout="@layout/activity_transition_start3" />    </FrameLayout></LinearLayout>

3 activity_transition_start3.xml

 

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#ffffff"    android:id="@+id/base"    tools:context=".TransitionsActivity">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textAppearance="?android:attr/textAppearanceLarge"        android:text="Large Text11"        android:id="@+id/text_view1"        android:layout_alignParentTop="true"        android:layout_alignParentStart="true"        android:layout_marginTop="53dp" />    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textAppearance="?android:attr/textAppearanceLarge"        android:text="Large Text22"        android:id="@+id/text_view2"        android:layout_marginTop="53dp"        android:layout_below="@+id/text_view1"        /></RelativeLayout>

4 activity_transition_end3.xml

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="#ffffff"    android:id="@+id/base"    tools:context=".TransitionsActivity">    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textAppearance="?android:attr/textAppearanceLarge"        android:text="Large Text22"        android:id="@+id/text_view2"        android:layout_alignParentTop="true"        android:layout_alignParentStart="true"        android:layout_marginTop="53dp" />    <TextView        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:textAppearance="?android:attr/textAppearanceLarge"        android:text="Large Text11"        android:id="@+id/text_view1"        android:layout_below="@+id/text_view2"        android:layout_marginTop="53dp" /></RelativeLayout>

5 res/transition/fade_transition.xml

<transitionSet xmlns:android="http://schemas.android.com/apk/res/android"    android:transitionOrdering="sequential"><fade android:fadingMode="fade_out"/><changeBounds/><fade android:fadingMode="fade_in"/>    </transitionSet><!--<autoTransition-->    <!--xmlns:android="http://schemas.android.com/apk/res/android"-->    <!--android:duration="3000"-->    <!--android:interpolator="@android:interpolator/cycle"/>-->




0 0