21
Android Transition Charlie@Android Taipei

Android Transition

Embed Size (px)

Citation preview

Page 1: Android Transition

Android TransitionCharlie@Android Taipei

Page 2: Android Transition

Charlie Tsai@Android Study [email protected]

Individual App Developer &System Software Engineer@NVIDIA

Today’s source codehttps://github.com/chatea/TransitionDemo

Page 3: Android Transition

Agenda

• Overview of Animations in Android• Transitions Framework• Demo and Live Coding

Page 4: Android Transition

Animations in Android• Animation (API 1+)

• Animator (API 11+)• LayoutTransition (API 11+)• FragmentManager.beginTransaction() (support.v4 or API

11+) .setCustomAnimations(…) .add(…) / replace(…) .commit()

• ViewPropertyAnimator (API 12+)View.animate().setXXX(…).setYYY(…)

• Transitions Framework (API 19+)Scene, Transition, and TransitionManager

• Transition between Activities (API 21+)ActivityOptions.makeSceneTransitionAnimation(…)

Page 5: Android Transition

API 19 are supported by ~80% devices

Page 6: Android Transition

Transitions framework

Page 7: Android Transition

Overview• Limitation• Scene• Transition• TransitionManager• Transition between Activities

Page 8: Android Transition

Limitation

• Cannot be applied to the SurfaceView• Cannot be applied to the AdapterView

e.g. ListView(Use LayoutTransition instead)

• Resizing the TextView has some problems

Page 9: Android Transition

Scene• Layout description between 2 scenes• Can be created from layout file

(res/layout/*.xml)• Can be created from code• Supports Callback:

Scene.setExitAction(Runnable) Scene.setEnterAction(Runnable)

Page 10: Android Transition

Transitions• Used to indicated the animation• Built-in transitions: fading, resizing, etc.• Can be created from xml (res/transition/*.xml)• Can be created from code• Transition.TransitionListener• Transition.addTarget() & Transition.removeTarget()• Multiple Transitions: TransitionSet

Page 11: Android Transition

Customized Transition

• public void captureStartValues(TransitionValues)

• public void captureEndValues(TransitionValues)

• public Animator createAnimator( ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues)

Page 12: Android Transition

Customized Transition

• A data structure used to store customized animation properties.

• class TransitionValues { public Map<String, Object> values; public View view;}

Page 13: Android Transition

TransitionManager• TransitionManager.go(Scene)

TransitionManager.go(Scene, Transition)• Transition.setTransition(…)

TransitionManager.transitionTo(Scene)• Animation without Scene and Transition

TransitionManager.beginDelayedTransition()

• Can be created by XML

Page 14: Android Transition

Transition between Activities

• Enter & ExitFade, Explode, SlidegetWindow().setEnterTransition(…)getWindow().setExitTransition(…)

• Shared elementschangeBounds, changeClipBounds,changeTransform, changeImageTransform

• ActivityOptionsCompat.makeSceneTransitionAnimation()ViewCompat.setTransitionName(…)Window.getSharedElementEnterTransition()

Page 15: Android Transition

Live coding

Page 16: Android Transition

Official Samples

Page 17: Android Transition

cmd + shift + a

Page 18: Android Transition
Page 19: Android Transition

固定聚會:每週三@菓子咖啡 (近捷運南京復興站 )技術分享:每月底週六 14:30 - 17:30

Page 20: Android Transition

Question?

Page 21: Android Transition

Thanks!