Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
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.1k
Other Decks in Technology
See All in Technology
Railsの話をしよう
yahonda
0
170
Wasmの気になる最新情報
askua
0
180
物体検出モデルでシイタケの収穫時期を自動判定してみた。 #devio2025
lamaglama39
0
260
AI時代におけるデータの重要性 ~データマネジメントの第一歩~
ryoichi_ota
0
710
サイバーエージェント流クラウドコスト削減施策「みんなで金塊堀太郎」
kurochan
4
2.2k
Click A, Buy B: Rethinking Conversion Attribution in ECommerce Recommendations
lycorptech_jp
PRO
0
120
エンタメとAIのための3Dパラレルワールド構築(GPU UNITE 2025 特別講演)
pfn
PRO
0
620
FinOps について (ちょっと) 本気出して考えてみた
skmkzyk
0
190
Implementing and Evaluating a High-Level Language with WasmGC and the Wasm Component Model: Scala’s Case
tanishiking
0
160
事業開発におけるDify活用事例
kentarofujii
4
1.2k
難しいセキュリティ用語をわかりやすくしてみた
yuta3110
0
360
CNCFの視点で捉えるPlatform Engineering - 最新動向と展望 / Platform Engineering from the CNCF Perspective
hhiroshell
0
120
Featured
See All Featured
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
15k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Unsuck your backbone
ammeep
671
58k
Git: the NoSQL Database
bkeepers
PRO
431
66k
RailsConf 2023
tenderlove
30
1.3k
Rebuilding a faster, lazier Slack
samanthasiow
84
9.2k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
23
1.5k
How to train your dragon (web standard)
notwaldorf
97
6.3k
Testing 201, or: Great Expectations
jmmastey
45
7.7k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
36
6.1k
Visualization
eitanlees
149
16k
Into the Great Unknown - MozCon
thekraken
40
2.1k
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Χοί͍͍ʂঁͷࢠ͔Βͷධྑ͍ʂ
͋Γ͕ͱ͏͍͟͝·ͨ͠