【Kotlin】SpringAnimationでバネアニメーション【Androidアプリ開発】

【Kotlin】SpringAnimationでバネアニメーション【Androidアプリ開発】
【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

▼ こんな記事も書いてます。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム

関連記事