Browse Source

1.点击控件添加动画效果

王鹏鹏 2 years ago
parent
commit
f88bb2cd5e
1 changed files with 33 additions and 8 deletions
  1. 33 8
      moca/src/main/java/com/yingyangfly/moca/activity/MocaActivity.kt

+ 33 - 8
moca/src/main/java/com/yingyangfly/moca/activity/MocaActivity.kt

@@ -1,17 +1,19 @@
 package com.yingyangfly.moca.activity
 
+import android.annotation.SuppressLint
 import android.text.TextUtils
+import android.view.MotionEvent
+import android.view.View
 import com.alibaba.android.arouter.facade.annotation.Route
+import com.yingyang.moca.R
 import com.yingyang.moca.databinding.ActivityMocaBinding
-import com.yingyangfly.baselib.base.BaseActivity
-import com.yingyangfly.baselib.ext.setOnSingleClickListener
+import com.yingyangfly.baselib.ext.getEndAnimation
+import com.yingyangfly.baselib.ext.getScaleAnimation
 import com.yingyangfly.baselib.ext.toast
 import com.yingyangfly.baselib.mvvm.BaseMVVMActivity
 import com.yingyangfly.baselib.router.RouterUrlCommon
-import com.yingyangfly.baselib.utils.LiveEventBusUtil
 import com.yingyangfly.baselib.utils.RxBusCodes
 import com.yingyangfly.baselib.utils.RxTimer
-import gorden.rxbus2.RxBus
 import gorden.rxbus2.Subscribe
 import gorden.rxbus2.ThreadMode
 
@@ -19,7 +21,8 @@ import gorden.rxbus2.ThreadMode
  * moca试题库
  */
 @Route(path = RouterUrlCommon.mocaEvaluation)
-class MocaActivity : BaseMVVMActivity<ActivityMocaBinding, MocaViewModel>() {
+class MocaActivity : BaseMVVMActivity<ActivityMocaBinding, MocaViewModel>(),
+    View.OnTouchListener {
 
     lateinit var rxTimer: RxTimer
     var time: Long = 0
@@ -28,10 +31,9 @@ class MocaActivity : BaseMVVMActivity<ActivityMocaBinding, MocaViewModel>() {
         rxTimer = RxTimer()
     }
 
+    @SuppressLint("ClickableViewAccessibility")
     override fun initListener() {
-        binding.layoutHead.setOnSingleClickListener {
-            finish()
-        }
+        binding.layoutHead.setOnTouchListener(this@MocaActivity)
     }
 
     override fun initData() {
@@ -76,4 +78,27 @@ class MocaActivity : BaseMVVMActivity<ActivityMocaBinding, MocaViewModel>() {
         }
     }
 
+    @SuppressLint("ClickableViewAccessibility")
+    override fun onTouch(v: View, event: MotionEvent): Boolean {
+        when (event.action) {
+            MotionEvent.ACTION_DOWN -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getScaleAnimation())
+                }
+            }
+            MotionEvent.ACTION_UP -> {
+                v.startAnimation(getEndAnimation())
+                if (v.id == R.id.layoutHead) {
+                    finish()
+                }
+            }
+            MotionEvent.ACTION_CANCEL -> {
+                if (v.id == R.id.layoutHead) {
+                    v.startAnimation(getEndAnimation())
+                }
+            }
+        }
+        return true
+    }
+
 }