Android VelocityTracker

    xiaoxiao2022-06-28  47

    VelocityTracker用于监测手指滑动时候的速度。

    <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.ebeijia.testvelocitytracker.MainActivity"> <TextView android:id="@+id/text" android:layout_width="match_parent" android:layout_height="match_parent" android:text="Hello World!" /> </RelativeLayout> import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.view.VelocityTracker; import android.widget.TextView; public class MainActivity extends AppCompatActivity { private VelocityTracker vTracker=null; private TextView textView; private float xSpeed,ySpeed; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); textView=(TextView)findViewById(R.id.text); } @Override public boolean onTouchEvent(MotionEvent event) { switch(event.getAction()){ case MotionEvent.ACTION_DOWN: if(vTracker==null){ //初始化velocityTracker的对象 vt 用来监测motionevent的动作 vTracker=VelocityTracker.obtain(); }else{ vTracker.clear(); } vTracker.addMovement(event); break; case MotionEvent.ACTION_MOVE: vTracker.addMovement(event); vTracker.computeCurrentVelocity(1000); xSpeed = vTracker.getXVelocity(); ySpeed=vTracker.getYVelocity(); textView.setText("xSpeed = " + xSpeed+",ySpeed="+ySpeed); break; case MotionEvent.ACTION_UP: case MotionEvent.ACTION_CANCEL: vTracker.recycle(); vTracker=null; break; } return super.onTouchEvent(event); } }
    转载请注明原文地址: https://ju.6miu.com/read-1124553.html

    最新回复(0)