Slide 1

Slide 1 text

Androidͷ෺ཧϕʔεΞχϝʔ γϣϯ Լ઒ܟ߂ on potatotips#46 1

Slide 2

Slide 2 text

Introduction — Twitter/GitHub : @androhi — Android application engineer at FiNC inc. — https://play.google.com/store/apps/details? id=jp.co.fincapp&hl=ja 2

Slide 3

Slide 3 text

Android animation — Property Animation — ΦϒδΣΫτͷҐஔ΍େ͖͞ͳͲͷϓϩύςΟΛมԽͤ͞Δ — View Animation — ΞχϝʔγϣϯΛఆٛͨ͠xmlϑΝΠϧΛ࢖͏ — Drawable Animation — ύϥύϥອը — Physics-based Animation <- Added! — ෺ཧ๏ଇʹԊͬͨϦΞϧͳΞχϝʔγϣϯ 3

Slide 4

Slide 4 text

Physics-based Animation — APIΨΠυ — https://developer.android.com/guide/topics/ graphics/physics-based-animation.html — Google I/O 2017 video (Android Animations Spring to Life) — https://www.youtube.com/watch?v=BNcODK-Ju0g 4

Slide 5

Slide 5 text

Physics-based Animation 1. Spring Animation — όωͷྗʹΑΔΞχϝʔγϣϯ 2. Fling Animation — ॳظͷ੎͍Λ࣋ͪঃʑʹݮ଎͢ΔΞχϝʔγϣϯ 5

Slide 6

Slide 6 text

Spring Animation dependencies { compile "com.android.support:support-dynamic-animation:27.0.2" } ओʹ͜ΕΒͷΫϥεΛ࢖༻͢Δ — SpringAnimation class — SpringForce class 6

Slide 7

Slide 7 text

Create spring animation val springAnimation = SpringAnimation(imageView, SpringAnimation.TRANSLATION_X) springAnimation.spring = SpringForce().apply { // ݮਰ཰Λઃఆ dampingRatio = SpringForce.DAMPING_RATIO_MEDIUM_BOUNCY // ߶ੑΛઃఆ stiffness = SpringForce.STIFFNESS_MEDIUM } springAnimation.start() 7

Slide 8

Slide 8 text

Demo https://github.com/androhi/ PhysicsBasedAnimationSample 8

Slide 9

Slide 9 text

Tips: animateToFinalPosition() method ҎԼΛ྆ํॲཧͯ͘͠ΕΔ 1. ࠷ޙͷҐஔΛηοτ — call setFinalPosition() 2. ΞχϝʔγϣϯΛ։࢝ — call start() 9

Slide 10

Slide 10 text

Summary — ͜Ε·ͰͷΞχϝʔγϣϯΫϥεͷΑ͏ʹࡉ͔͍ύϥϝʔ λʔΛௐ੔ͤͣʹɺϦΞϧͳΞχϝʔγϣϯ͕࣮૷Ͱ͖ Δɻ — ΦϒδΣΫτಉ࢜ͷ࿈ಈͳͲɺෳࡶͳΞχϝʔγϣϯ΋࣮ ૷Ͱ͖Δɻ 10

Slide 11

Slide 11 text

Thank you for listening 11