android transition
TRANSCRIPT
![Page 1: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/1.jpg)
Android TransitionCharlie@Android Taipei
![Page 2: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/2.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/3.jpg)
Agenda
• Overview of Animations in Android• Transitions Framework• Demo and Live Coding
![Page 4: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/4.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/5.jpg)
API 19 are supported by ~80% devices
![Page 6: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/6.jpg)
Transitions framework
![Page 7: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/7.jpg)
Overview• Limitation• Scene• Transition• TransitionManager• Transition between Activities
![Page 8: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/8.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/9.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/10.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/11.jpg)
Customized Transition
• public void captureStartValues(TransitionValues)
• public void captureEndValues(TransitionValues)
• public Animator createAnimator( ViewGroup sceneRoot, TransitionValues startValues, TransitionValues endValues)
![Page 12: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/12.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/13.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/14.jpg)
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](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/15.jpg)
Live coding
![Page 16: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/16.jpg)
Official Samples
![Page 17: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/17.jpg)
cmd + shift + a
![Page 18: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/18.jpg)
![Page 19: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/19.jpg)
固定聚會:每週三@菓子咖啡 (近捷運南京復興站 )技術分享:每月底週六 14:30 - 17:30
![Page 20: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/20.jpg)
Question?
![Page 21: Android Transition](https://reader035.vdocuments.net/reader035/viewer/2022070516/5872a0ea1a28ab07208b5b57/html5/thumbnails/21.jpg)
Thanks!