Android 获取触摸点坐标,判断滑动方向,滑动距离,滑动速度
生活随笔
收集整理的這篇文章主要介紹了
Android 获取触摸点坐标,判断滑动方向,滑动距离,滑动速度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
activity 或 fragment 實現接口 ?View.OnTouchListener
如:public class MyFragment extends Fragment implements View.OnTouchListener{
?
重寫實現方法
?
@Overridepublic boolean onTouch(View v, MotionEvent event) {//繼承了Activity的onTouchEvent方法,直接監聽點擊事件if(event.getAction() == MotionEvent.ACTION_DOWN) {//當手指按下的時候x1 = event.getX();y1 = event.getY();}if(event.getAction() == MotionEvent.ACTION_MOVE) {//當手指移動的時候x2 = event.getX();y2 = event.getY();if(y1 - y2 > 50) {Toast.makeText(MyServiceTestActivity.this, "向上滑", Toast.LENGTH_SHORT).show();} else if(y2 - y1 > 50) {Toast.makeText(MyServiceTestActivity.this, "向下滑", Toast.LENGTH_SHORT).show();} else if(x1 - x2 > 50) {Toast.makeText(MyServiceTestActivity.this, "向左滑", Toast.LENGTH_SHORT).show();} else if(x2 - x1 > 50) {Toast.makeText(MyServiceTestActivity.this, "向右滑", Toast.LENGTH_SHORT).show();}}if (event.getAction()==MotionEvent.ACTION_UP){Log.i("Lgq","sssssssll離開了lllll=="); // updview(nowpersion);}return super.onTouchEvent(event); // return false;}view設置監聽
slv = (ScrollListenerView)findViewById(R.id.slv);slv.setOnTouchListener(this);?
分發二:重寫方法
@Override public boolean dispatchTouchEvent(MotionEvent ev) {if (ev.getAction()==MotionEvent.ACTION_UP){LgqLogutil.e("動啦啦啦啦");}return super.dispatchTouchEvent(ev); }?
滑動速度:放在MotionEvent.ACTION_MOVE里
VelocityTracker mVelocityTracker = VelocityTracker.obtain();mVelocityTracker.addMovement(ev);mVelocityTracker.computeCurrentVelocity(1000);float xVelocity = mVelocityTracker.getXVelocity();//速度 xVelocity = Math.abs(xVelocity);//去絕對值。向左滑,值為負數獲取最多速度
float sudu; if (sudu < xVelocity) {sudu = xVelocity; }?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的Android 获取触摸点坐标,判断滑动方向,滑动距离,滑动速度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android 城市选择,热门城市,全部
- 下一篇: Android 折叠头部监听,抽屉式动画