はじめに
前回の 【Android】Viewをドラッグして移動させる【Kotlin】
こちらの記事に引き続き Viewを動かしながらそこに回転を加えていきます。
前回の記事の続きものになるので、まだみていない方は先に前回のものも見ていただけると分かりやくなると思います。
実践
Viewをドラッグし縦方向に動かしている間は回転(横方向は水平移動)、指を離したら元の元の位置、元の角度に戻るようにします。
MotionEvent.ACTION_MOVE -> {
省略・・・
+ // 回転
+ val distanceX = firstPositionX - newPositionX
+ val distanceY = firstPositionY - newPositionY
+ val absX = abs(distanceX)
+ val absY = abs(distanceY)
+ val abs =
+ if (absX < absY) {
+ // 0はY軸の真ん中
+ if (0 < distanceY) {
+ -absY
+ } else {
+ absY
+ }
+ } else {
+ 0
+ }
+ view.rotation = abs.toFloat()
}
MotionEvent.ACTION_UP -> {
省略・・・
+ view.rotation = 0f
}