$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
はじめてのKenBurnsEffect
Search
Yoichi Nishimura
February 18, 2015
Technology
1
1.4k
はじめてのKenBurnsEffect
第14回 potatotips (iOS/Android開発Tips共有会) での発表資料
Yoichi Nishimura
February 18, 2015
Tweet
Share
More Decks by Yoichi Nishimura
See All by Yoichi Nishimura
Material Designの作り方 〜Bottom Sheets編〜
nissiy
1
690
iQONのWear Notification最適化
nissiy
2
440
iQON Engineer Seminar - Android
nissiy
0
4.2k
Other Decks in Technology
See All in Technology
AIエージェントを5分で一気におさらい!AIエージェント「構築」元年に備えよう
yakumo
1
100
[Neurogica] 採用ポジション/ Recruitment Position
neurogica
1
130
Oracle Database@Azure:サービス概要のご紹介
oracle4engineer
PRO
2
200
Claude Skillsの テスト業務での活用事例
moritamasami
1
110
2025年のデザインシステムとAI 活用を振り返る
leveragestech
0
330
2025-12-27 Claude CodeでPRレビュー対応を効率化する@機械学習社会実装勉強会第54回
nakamasato
4
1.1k
AgentCore BrowserとClaude Codeスキルを活用した 『初手AI』を実現する業務自動化AIエージェント基盤
ruzia
7
1.6k
ペアーズにおけるAIエージェント 基盤とText to SQLツールの紹介
hisamouna
2
1.7k
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
200
日本Rubyの会: これまでとこれから
snoozer05
PRO
6
250
アラフォーおじさん、はじめてre:Inventに行く / A 40-Something Guy’s First re:Invent Adventure
kaminashi
0
160
Introduce marp-ai-slide-generator
itarutomy
0
130
Featured
See All Featured
Everyday Curiosity
cassininazir
0
110
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Producing Creativity
orderedlist
PRO
348
40k
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
0
22
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
30 Presentation Tips
portentint
PRO
1
180
Building a Scalable Design System with Sketch
lauravandoore
463
34k
The Mindset for Success: Future Career Progression
greggifford
PRO
0
200
Color Theory Basics | Prateek | Gurzu
gurzu
0
150
Darren the Foodie - Storyboard
khoart
PRO
0
2k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
Transcript
͡Ίͯͷ,FO#VSOT&⒎FDU OJTTJZ
"CPVU.F w OJTTJZʢʹͬ͠ʔʣ !ZPJDIJOJTIJNVSB!OJTTJZ w 7"4*-: JOD w J20/࡞͍ͬͯ·͢ w
झຯөըؑ
,FO#VSOT&⒎FDUʁʁʁ
,FO#VSOT&⒎FDU w υΩϡϝϯλϦʔөըͷಜ ,FO#VSOTʢ!LFOCVSOTʣ͕ଟ༻͢Δ ύϯɾνϧτͱζʔϜΛΈ߹Θٕͤͨ๏ w ੩ࢭըʹಈ͖Λ༩͑ΔޮՌ͕͋Γ·͢ w (PPHMF1MBZχϡʔεελϯυͷΞϨ IUUQKBXJLJQFEJBPSHXJLJέϯɾόʔϯζ
,FO#VSOT7JFX࡞Γ·ͨ͠
'SBNF-BZPVUΛܧঝͨ͠$VTUPN7JFX public class KenBurnsView extends FrameLayout { private boolean mDebugLog
= false; private String mDebugTag = “KenBurnsView";
͍͍͢ΠϯλϑΣʔε @InjectView(R.id.ken_burns_effect) KenBurnsView mKenBurnsEffect; private void startKenBurnsEffect(String... urls) { mKenBurnsEffect.setUrls(urls);
} w "DUJWJUZʢ'SBHNFOUʣ͔Β63-PSϦιʔε*%ΛྻͰ͚ͩ͢
͋ͱࣗಈʹΞχϝʔγϣϯ @Override protected void onDetachedFromWindow() { super.onDetachedFromWindow(); mHandler.removeCallbacks(mAnimationRunnable); } w
ը૾ͷಡΈࠐΈ͕ྃͨ͠ΒΞχϝʔγϣϯ։࢝ w PO%FUBDIFE'SPN8JOEPX ͰΞχϝʔγϣϯऴྃ
Ξχϝʔγϣϯ7JFX1SPQFSUZ"OJNBUPSͰ // Ξχϝʔγϣϯͷॳظঢ়ଶϥϯμϜͰੜ͠ɺ͜ͷલͰઃఆ͢Δ ViewPropertyAnimator animator = view.animate() .translationX(toTranslationX) .translationY(toTranslationY) .scaleX(toScale)
.scaleY(toScale) .setDuration(duration); animator.start(); w ը૾αΠζͱཚΛͬͯ4DBMFͱ5SBOTMBUJPOΛܾఆͤ͞Δ w ͦͷใΛͬͯ7JFX1SPQFSUZ"OJNBUPSͰΞχϝʔγϣϯ
̏ ̎ ը૾ͷݟͤํʢ/ͷ߹ʣ ̍ ࣌ؒͷྲྀΕ ̏ ̎ ̍ ̏ ̎
̍ w ֤ͷը૾ͷBMQIBΛ͍ͬͯ͡ը૾͕ೖΕସΘΔΑ͏ʹݟ͍ͤͯΔ
͜ΕͰ,FO#VSOT7JFX͕࡞ΕΔͰʂ εϚϗΞϓϦʹԶͷ໊͕ڹ͖ΔΜʂ
طʹJ20/Ͱ͍ͬͯ·͢ w J20/ͷϒϥϯυϖʔδͰ࣮ w ֤ϒϥϯυͷϞσϧೖΓը૾͔ΒΛදࣔ ࡱΓͷΈͷϒϥϯυਓؾΞΠςϜͰิర
Γ͍ͨ͜ͱ w େ͖͍ը૾͕͞Εͨࡍͷ00.ରࡦΛೖΕΔ w ը૾ͷऔಘॲཧ͕Πέͯͳ͍ͷͰ͢ w Ξχϝʔγϣϯ։࢝ޙʹ63-PSϦιʔε*%Λ ड͚औΕΔΑ͏ʹͯ͠ಈతʹը૾Λࠩ͠ସ͑ΒΕΔΑ͏ʹ͢Δ w ֎෦ϥΠϒϥϦԽͯ͠ެ։
͍͞͝ʹ w εϚϗΞϓϦʹөըͷٕ๏͕ೖ͞Ε͡Ί͍ͯΔ 48:FBSͳͷͰ++"CSBNTͷϨϯζϑϨΞͱ͔དྷΔ͔X w ,FO#VSOT&⒎FDUΧοί͍͍ʂঁͷࢠ͔Βͷධྑ͍ʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠