【Kotlin】SpringAnimationでバネアニメーション【Androidアプリ開発】
この記事では、SpringAnimationを使ったバネアニメーションのやり方を解説していく。今回のAndroidサンプルプロジェクトでは、2017年に追加された SpringAnimation を使ってバネアニメーションを実践した。大変簡単に実装できたのでぜひ参考に。
ライブラリの追加
SpringAnimationを使うためにはライブラリを追加する必要がある。build.gradle(Module: app)のdependenciesに以下の一行を追記する。implementation 'com.android.support:support-dynamic-animation:28.0.0'
アニメーションするプログラム
今回はSpringAnimationを使ってViewのスケールを変化させてみる。アニメーションのプログラム内容は以下のようになった。
kotlin
fun doSpringAnimation(sender: View) {
sender.scaleX = 0.5f
sender.scaleY = 0.5f
val (anim1X, anim1Y ) = sender.let { view ->
SpringAnimation(view, DynamicAnimation.SCALE_X, 1.0f ) to
SpringAnimation(view, DynamicAnimation.SCALE_Y, 1.0f)
}
anim1X.spring.apply {
dampingRatio = SpringForce.DAMPING_RATIO_HIGH_BOUNCY
stiffness = SpringForce.STIFFNESS_LOW
}
anim1Y.spring.apply {
dampingRatio = SpringForce.DAMPING_RATIO_HIGH_BOUNCY
stiffness = SpringForce.STIFFNESS_LOW
}
anim1X.start()
anim1Y.start()
}
上記のメソッドを使う場合は次のようにしてアニメーションさせたいViewを渡せばよい。
kotlin
val target = findViewById<View>(R.id.imageView)
doSpringAnimation(target)
参考
Android animations spring to life (Google I/O '17) - YouTube ばねの物理的性質を利用して動きをアニメーションにする - Androidデベロッパードキュメントガイド 新しく公開された Spring Animation を使う - Qiita
▼ こんな記事も書いてます。
関連記事
アイデアノート > ネイティブアプリ開発