Slide 1

Slide 1 text

͸͡Ίͯͷ,FO#VSOT&⒎FDU OJTTJZ

Slide 2

Slide 2 text

"CPVU.F w OJTTJZʢʹͬ͠ʔʣ
 !ZPJDIJOJTIJNVSB!OJTTJZ w 7"4*-: JOD w J20/࡞͍ͬͯ·͢ w झຯ͸өըؑ৆

Slide 3

Slide 3 text

,FO#VSOT&⒎FDUʁʁʁ

Slide 4

Slide 4 text

,FO#VSOT&⒎FDU w υΩϡϝϯλϦʔөըͷ؂ಜ
 ,FO#VSOTʢ!LFOCVSOTʣ͕ଟ༻͢Δ
 ύϯɾνϧτͱζʔϜΛ૊Έ߹Θٕͤͨ๏ w ੩ࢭըʹಈ͖Λ༩͑ΔޮՌ͕͋Γ·͢ w (PPHMF1MBZχϡʔεελϯυͷΞϨ IUUQKBXJLJQFEJBPSHXJLJέϯɾόʔϯζ

Slide 5

Slide 5 text

,FO#VSOT7JFX࡞Γ·ͨ͠

Slide 6

Slide 6 text

'SBNF-BZPVUΛܧঝͨ͠$VTUPN7JFX public class KenBurnsView extends FrameLayout { private boolean mDebugLog = false; private String mDebugTag = “KenBurnsView";

Slide 7

Slide 7 text

࢖͍΍͍͢ΠϯλϑΣʔε @InjectView(R.id.ken_burns_effect) KenBurnsView mKenBurnsEffect; private void startKenBurnsEffect(String... urls) { mKenBurnsEffect.setUrls(urls); } w "DUJWJUZʢ'SBHNFOUʣ͔Β63-PSϦιʔε*%Λ഑ྻͰ౉͚ͩ͢

Slide 8

Slide 8 text

͋ͱ͸ࣗಈʹΞχϝʔγϣϯ @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mHandler.removeCallbacks(mAnimationRunnable); } w ը૾ͷಡΈࠐΈ͕׬ྃͨ͠ΒΞχϝʔγϣϯ։࢝ w PO%FUBDIFE'SPN8JOEPX ͰΞχϝʔγϣϯऴྃ

Slide 9

Slide 9 text

Ξχϝʔγϣϯ͸7JFX1SPQFSUZ"OJNBUPSͰ // Ξχϝʔγϣϯͷॳظঢ়ଶ΋ϥϯμϜͰੜ੒͠ɺ͜ͷલͰઃఆ͢Δ ViewPropertyAnimator animator = view.animate() .translationX(toTranslationX) .translationY(toTranslationY) .scaleX(toScale) .scaleY(toScale) .setDuration(duration); animator.start(); w ը૾αΠζͱཚ਺Λ࢖ͬͯ4DBMFͱ5SBOTMBUJPOΛܾఆͤ͞Δ w ͦͷ৘ใΛ࢖ͬͯ7JFX1SPQFSUZ"OJNBUPSͰΞχϝʔγϣϯ

Slide 10

Slide 10 text

̏ ̎ ը૾ͷݟͤํʢ/ͷ৔߹ʣ ̍ ࣌ؒͷྲྀΕ ̏ ̎ ̍ ̏ ̎ ̍ w ֤૚ͷը૾ͷBMQIBΛ͍ͬͯ͡ը૾͕ೖΕସΘΔΑ͏ʹݟ͍ͤͯΔ

Slide 11

Slide 11 text

͜ΕͰ,FO#VSOT7JFX͕࡞ΕΔͰʂ εϚϗΞϓϦʹԶͷ໊͕ڹ͖౉ΔΜ΍ʂ

Slide 12

Slide 12 text

طʹJ20/Ͱ࢖͍ͬͯ·͢ w J20/ͷϒϥϯυϖʔδͰ࣮૷ w ֤ϒϥϯυͷϞσϧೖΓը૾͔Β఺Λදࣔ
 ෺ࡱΓͷΈͷϒϥϯυ͸ਓؾΞΠςϜͰิర

Slide 13

Slide 13 text

΍Γ͍ͨ͜ͱ w େ͖͍ը૾͕౉͞Εͨࡍͷ00.ରࡦΛೖΕΔ w ը૾ͷऔಘॲཧ͕Πέͯͳ͍ͷͰ௚͢ w Ξχϝʔγϣϯ։࢝ޙʹ63-PSϦιʔε*%Λ
 ड͚औΕΔΑ͏ʹͯ͠ಈతʹը૾Λࠩ͠ସ͑ΒΕΔΑ͏ʹ͢Δ w ֎෦ϥΠϒϥϦԽͯ͠ެ։

Slide 14

Slide 14 text

͍͞͝ʹ w εϚϗΞϓϦʹөըͷٕ๏͕౤ೖ͞Ε͸͡Ί͍ͯΔ
 48:FBSͳͷͰ++"CSBNTͷϨϯζϑϨΞͱ͔དྷΔ͔΋X w ,FO#VSOT&⒎FDUΧοί͍͍ʂঁͷࢠ͔Βͷධ൑΋ྑ͍ʂ

Slide 15

Slide 15 text

͋Γ͕ͱ͏͍͟͝·ͨ͠