1.activity_main.xml
2.scene2.xml
3.MainActivity.java
package com.terryyamg.transitionstest; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.transition.Explode; import android.transition.Scene; import android.transition.Slide; import android.transition.TransitionManager; import android.util.Log; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private ViewGroup transitionsContainer; private Scene scene1, scene2; private Button btnShowBottomText, btnSlide; private TextView tv1; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); transitionsContainer = (ViewGroup) findViewById(R.id.transitions_container); scene1 = Scene.getSceneForLayout(transitionsContainer, R.layout.activity_main, this); //初始畫面 scene2 = Scene.getSceneForLayout(transitionsContainer, R.layout.scene2, this); //第二畫面 setting(); } private void setting() { btnShowBottomText = (Button) transitionsContainer.findViewById(R.id.btnShowBottomText); tv1 = (TextView) transitionsContainer.findViewById(R.id.tv1); btnSlide = (Button) transitionsContainer.findViewById(R.id.btnSlide); } public void showBottomText(View view) { Log.i("show", "showBottomText"); TransitionManager.beginDelayedTransition(transitionsContainer); //預設 new Fade() toggleVisibility(tv1); } public void slide(View view) { Log.i("show", "slide"); TransitionManager.beginDelayedTransition(transitionsContainer, new Slide()); //滑動 ex:Slide(Gravity.RIGHT).. toggleVisibility(btnShowBottomText); } public void explode(View view) { Log.i("show", "explode"); TransitionManager.beginDelayedTransition(transitionsContainer, new Explode()); //爆炸 隨意方向 toggleVisibility(btnShowBottomText, btnSlide); } public void goToScene1(View view) { TransitionManager.go(scene1); //回到初始頁面 setting(); } public void goToScene2(View view) { TransitionManager.go(scene2); //前往第二頁面 setting(); } private static void toggleVisibility(View... views) { for (View view : views) { boolean isVisible = view.getVisibility() == View.VISIBLE; view.setVisibility(isVisible ? View.GONE : View.VISIBLE); //隱藏或顯示 } } }
檔案下載:
https://github.com/terryyamg/TransitionsTest
參考連結:
http://www.androiddesignpatterns.com/2014/12/activity-fragment-transitions-in-android-lollipop-part1.html
https://possiblemobile.com/2013/11/new-transitions-framework/
http://www.techotopia.com/index.php/Implementing_Android_Scene_Transitions_%E2%80%93_A_Tutorial
Wow! This is list is super amazing. Thank you so much for sharing,จีคลับ
回覆刪除