Soumettre la recherche
Mettre en ligne
実践アニメーション
•
1 j'aime
•
2,860 vues
N
Naoya Yunoue
Suivre
DroidKaigi 2017 実践アニメーションの講義で使用したスライドです。
Lire moins
Lire la suite
Ingénierie
Signaler
Partager
Signaler
Partager
1 sur 43
Télécharger maintenant
Télécharger pour lire hors ligne
Recommandé
こんなに違う!Unityアプリケーション講座
こんなに違う!Unityアプリケーション講座
Unity Technologies Japan K.K.
UnityでのLINQ活用例
UnityでのLINQ活用例
Ryota Murohoshi
全てSになる -RxJavaとLWSを持ち込む楽しさ-
全てSになる -RxJavaとLWSを持ち込む楽しさ-
Ryutaro Miyashita
Android lint-srp-practice
Android lint-srp-practice
cch-robo
What is tested by pre-launch (security) reports?
What is tested by pre-launch (security) reports?
ak_shio_555
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
Masataka Kono
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
Yukiya Nakagawa
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略
Masahiro Hidaka
Recommandé
こんなに違う!Unityアプリケーション講座
こんなに違う!Unityアプリケーション講座
Unity Technologies Japan K.K.
UnityでのLINQ活用例
UnityでのLINQ活用例
Ryota Murohoshi
全てSになる -RxJavaとLWSを持ち込む楽しさ-
全てSになる -RxJavaとLWSを持ち込む楽しさ-
Ryutaro Miyashita
Android lint-srp-practice
Android lint-srp-practice
cch-robo
What is tested by pre-launch (security) reports?
What is tested by pre-launch (security) reports?
ak_shio_555
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
minneにおけるテスト〜リリース〜リリース後にやっている事の紹介
Masataka Kono
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
React Nativeはクロスプラットフォームモバイルアプリ開発の夢を見るか #DroidKaigi
Yukiya Nakagawa
Androidアプリのストレージ戦略
Androidアプリのストレージ戦略
Masahiro Hidaka
用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法
Takao Sumitomo
Viewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチ
Takao Sumitomo
DroidKaigi 2017 welcometalk DAY01
DroidKaigi 2017 welcometalk DAY01
Masahiro Hidaka
DroidKaigi 2017 welcometalk DAY02
DroidKaigi 2017 welcometalk DAY02
Masahiro Hidaka
Android Dev Tools Knowledge
Android Dev Tools Knowledge
Shinobu Okano
Client-Side Deep Learning
Client-Side Deep Learning
Shuichi Tsutsumi
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
Kazuki Yoshida
DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法
tkawashita
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Kengo Suzuki
Master of Canvas
Master of Canvas
Mima Yuki
パーミッションモデルの過渡期への対応
パーミッションモデルの過渡期への対応
ak_shio_555
怖くないGradle設定とBazel
怖くないGradle設定とBazel
shimada tatsuya
最速でリリースするためのAndroidアプリデザイン
最速でリリースするためのAndroidアプリデザイン
Naoki Aoyama
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
Takuya Ueda
AndroidLint #DroidKaigi
AndroidLint #DroidKaigi
Yukiya Nakagawa
少し幸せになる技術
少し幸せになる技術
kamedon39
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Yuki Anzai
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
Takami Sato
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Yukari Sakurai
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
Createjs jp study #4 20130726
Createjs jp study #4 20130726
Seigo Tanaka
SnapDishの事例
SnapDishの事例
Fumikazu Kiyota
Contenu connexe
En vedette
用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法
Takao Sumitomo
Viewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチ
Takao Sumitomo
DroidKaigi 2017 welcometalk DAY01
DroidKaigi 2017 welcometalk DAY01
Masahiro Hidaka
DroidKaigi 2017 welcometalk DAY02
DroidKaigi 2017 welcometalk DAY02
Masahiro Hidaka
Android Dev Tools Knowledge
Android Dev Tools Knowledge
Shinobu Okano
Client-Side Deep Learning
Client-Side Deep Learning
Shuichi Tsutsumi
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
Kazuki Yoshida
DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法
tkawashita
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Kengo Suzuki
Master of Canvas
Master of Canvas
Mima Yuki
パーミッションモデルの過渡期への対応
パーミッションモデルの過渡期への対応
ak_shio_555
怖くないGradle設定とBazel
怖くないGradle設定とBazel
shimada tatsuya
最速でリリースするためのAndroidアプリデザイン
最速でリリースするためのAndroidアプリデザイン
Naoki Aoyama
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
Takuya Ueda
AndroidLint #DroidKaigi
AndroidLint #DroidKaigi
Yukiya Nakagawa
少し幸せになる技術
少し幸せになる技術
kamedon39
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Yuki Anzai
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
Takami Sato
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Yukari Sakurai
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
kwatch
En vedette
(20)
用途に合わせたアニメーションの実装方法
用途に合わせたアニメーションの実装方法
Viewを動的に変化させるアプローチ
Viewを動的に変化させるアプローチ
DroidKaigi 2017 welcometalk DAY01
DroidKaigi 2017 welcometalk DAY01
DroidKaigi 2017 welcometalk DAY02
DroidKaigi 2017 welcometalk DAY02
Android Dev Tools Knowledge
Android Dev Tools Knowledge
Client-Side Deep Learning
Client-Side Deep Learning
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
明日から使えるRxjava頻出パターン (Droid kaigi 2016)
DroidKaigi2016 windows環境での効率的なアプリ開発手法
DroidKaigi2016 windows環境での効率的なアプリ開発手法
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Androidのセキュア開発について考えてみた(明日、敗訴しないためのセキュアコーディング.ver2)
Master of Canvas
Master of Canvas
パーミッションモデルの過渡期への対応
パーミッションモデルの過渡期への対応
怖くないGradle設定とBazel
怖くないGradle設定とBazel
最速でリリースするためのAndroidアプリデザイン
最速でリリースするためのAndroidアプリデザイン
Go MobileでAndroidアプリ開発
Go MobileでAndroidアプリ開発
AndroidLint #DroidKaigi
AndroidLint #DroidKaigi
少し幸せになる技術
少し幸せになる技術
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Activity, Fragment, CustomView の使い分け - マッチョなActivityにさよならする方法 -
Scikit learnで学ぶ機械学習入門
Scikit learnで学ぶ機械学習入門
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
SQL上級者こそ知って欲しい、なぜO/Rマッパーが重要か?
Similaire à 実践アニメーション
Createjs jp study #4 20130726
Createjs jp study #4 20130726
Seigo Tanaka
SnapDishの事例
SnapDishの事例
Fumikazu Kiyota
Unity/CSharp 1 - pptx
Unity/CSharp 1 - pptx
tagawakiyoshi
OpenCV 3.0 on iOS
OpenCV 3.0 on iOS
Shuichi Tsutsumi
openFrameworksセミナー(2014)レポート
openFrameworksセミナー(2014)レポート
Nariaki Iwatani
Core Graphics on watchOS 2
Core Graphics on watchOS 2
Shuichi Tsutsumi
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Takayuki Shimizukawa
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
Takeshi Komiya
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
Yasuharu Seki
Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。
Manato KAMEYA
Unity/CSharp 3
Unity/CSharp 3
tagawakiyoshi
Django と Wagtail で作る Headless CMS
Django と Wagtail で作る Headless CMS
Iosif Takakura
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
Satoru Kodaira
Unity/CSharp 2
Unity/CSharp 2
tagawakiyoshi
Ninja framework使ってみた
Ninja framework使ってみた
eiryu
C++でiOSアプリ
C++でiOSアプリ
5mingame2
2013講義1
2013講義1
ytanno
ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場
Shota Suzuki
Firefox拡張機能を始める
Firefox拡張機能を始める
egtra
Similaire à 実践アニメーション
(20)
Createjs jp study #4 20130726
Createjs jp study #4 20130726
SnapDishの事例
SnapDishの事例
Unity/CSharp 1 - pptx
Unity/CSharp 1 - pptx
OpenCV 3.0 on iOS
OpenCV 3.0 on iOS
openFrameworksセミナー(2014)レポート
openFrameworksセミナー(2014)レポート
Core Graphics on watchOS 2
Core Graphics on watchOS 2
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
Django ORM道場:クエリの基本を押さえ,より良い形を身に付けよう
APIドキュメントの話 #sphinxjp
APIドキュメントの話 #sphinxjp
ソニーでElectronアプリをリリースしてみた
ソニーでElectronアプリをリリースしてみた
Room metro Tokyo #3 発表資料です。
Room metro Tokyo #3 発表資料です。
Unity/CSharp 3
Unity/CSharp 3
Django と Wagtail で作る Headless CMS
Django と Wagtail で作る Headless CMS
Python & PyConJP 2014 Report
Python & PyConJP 2014 Report
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
ジーノ先生の文系的オブジェクト指向(1) - ジーノ誕生
Unity/CSharp 2
Unity/CSharp 2
Ninja framework使ってみた
Ninja framework使ってみた
C++でiOSアプリ
C++でiOSアプリ
2013講義1
2013講義1
ハイブリットソーシャルゲームの現場
ハイブリットソーシャルゲームの現場
Firefox拡張機能を始める
Firefox拡張機能を始める
実践アニメーション
1.
実践アニメーション ~複雑なアニメーションへのアプローチ~ 湯上 尚哉
2.
資料について PDF に ODP
を埋め込んでありますので、ダウンロード後 LibreOffice で 開くとアニメーション gif が動きます サンプルコード https://github.com/citrous/practicalanimation
3.
目次 1. 自己紹介とこの講義について 2. View
アニメーションの基礎 3. 様々なアプローチの紹介 3-1. 複数の要素を組み合わせる 3-2. AnimatedVectorDrawable の作り方 3-3. コードで実装する
4.
目次 1. 自己紹介とこの講義について 2. View
アニメーションの基礎 3. 様々なアプローチの紹介 3-1. 複数の要素を組み合わせる 3-2. AnimatedVectorDrawable の作り方 3-3. コードで実装する(ここが本編!)
5.
1. 自己紹介とこの講義について
6.
湯上 尚哉(ゆのうえ なおや) Android と Kotlin
大好き ワインと日本酒も大好き 最近 Netflix に夢中
7.
株式会社セプテーニ・オリジナルで 「 GANMA! 」という漫画アプリの開発に従事 Android
も Scala で書いています
8.
Android のアニメーション どうやって作るべき?
9.
アニメーション画像データがあるなら問題なし! ない場合、どうやって作るのか?
10.
Animation 関連の API
がたくさん ・ Animation クラス ・ Transition Animation ・ Property Animation ・などなど
11.
複雑なアニメーションを実装する際に どういうアプローチが存在するのかを紹介します
12.
2. View アニメーションの基礎
13.
Android の基本的なアニメーション ・移動( Translation
) ・拡大縮小( Scale ) ・回転( Rotation ) ・透過( Alpha )
14.
移動( Translation ) view.animate().translationX(128).translationY(128).start();
15.
拡大・縮小( Scale ) view.animate().scaleX(2.0f).scaleY(2.0f).start();
16.
回転( Rotation ) view.animate().rotation(180f).start();
17.
透過( Alpha ) view.animate().alpha(0f).start();
18.
Material Design からのアニメーション事情 ・物理的な視覚効果を表現する ・ユーザーアクションへのフィードバックが重要 →
Ripple Effect, Transition Animation
19.
今時のアプリのデザイン ・シンプルなアニメーションでは表現力不足 ・なんだか物足りない
20.
3. 複雑なアニメーションへのアプローチ
21.
複数の要素を組み合わせる res/animator に AnimatorSet
のリソースを作る 他の View にも使いまわせる
22.
・ typo が怖い ・アニメーションが複雑になってくると読み辛い ・一度作成したリソースが聖域になりやすい
23.
AnimatedVectorDrawable ObjectAnimator を使って VectorDrawable
を アニメーションさせる
24.
Android Icon Animator https://romannurik.github.io/AndroidIconAnimator/ Google
の Roman Nurik 氏による神ツール 作成したアニメーションアイコンを xml で出力可能
25.
VectorDrawable に対応した アニメーションアイコンを手軽に作成できる プレビュー版とはいえ実用性は十分 アニメーションさせる対象が増えると大変…
26.
シンプルなアニメーションアイコンは 手軽に作成できる プレビュー版とはいえ実用性は十分 アニメーションさせる対象が増えると大変…
27.
こんなアニメーションは?
28.
ここからが本題です
29.
ValueAnimator + CustomView
万能説
30.
ValueAnimator ・ ObjectAnimator の継承元 ・
API Level 11 ~ ・指定した値を指定した時間内で変化させる ・複数のプロパティを持たせることも可能
31.
ここで指定した時間内で
32.
ここで指定した値が 0 ~指定値まで変わる
33.
・ setValues は基本的に何でも
OK ・複数の値を Key-Value で指定できる ・開始時の値を指定することも可能 (API Level 21 ~ )
34.
setValues のなかまたち setFloatValues(float... values)
→ float 値 setIntValues(int... values) → int 値 setValues(PropertyValuesHolder... values) → PropertyValuesHolder を入れられる setObjectValues(Object... values) → 何でも OK. 推移は setEvaluator で定義する
35.
Interpolator に合わせて変化させることができる 最初ゆっくり後半加速とか、最初と最後ゆっくりとか
36.
UpdateListener を設定 値が更新されたタイミングで View
を更新してあげる
37.
View の onDraw()
で ValueAnimator の値をもとに 図形を描画
38.
各点の描画 X 座標 =
value * ランダム数値 1 + A Y 座標 = (value * ランダム数値 2)^2 - 2( ランダム数値 2 * ランダム数値 3) + A ランダム数値 : アニメーション開始時に生成 value: ValueAnimator で取得できる値 A: View の中心までの座標
39.
出来上がり
40.
ValueAnimator を複数使った例
41.
・全てコード内で完結する ・描画の相対座標指定やランダム要素の付加等が楽 ・アニメーション対象が増えても追加しやすい ・複雑になった場合の可読性が xml より高そう
42.
まとめ ・画像リソースがあるならそれに越したことはない ・ Android Icon
Animator は便利 ・ ValueAnimator + CustomView で何とでもなる
43.
素敵な Android アニメーションライフを お過ごしください
Télécharger maintenant