android MotionEvent和TouchSlop触摸处理
来源:互联网 发布:网络报纸取代传统报纸 编辑:程序博客网 时间:2024/05/29 17:24
这次介绍MotionEvent和TouchSlop的使用
上一次说了通过MotionEvent得到当前x和y的坐标,这次说一下它显示手指触摸屏幕的状态。
通过MotionEvent能得到触摸滑动的状态,一般使用的是ACTION_UP和ACTION_DOEN和ACTION_MOVE,ACTION_UP指的是手指抬起的状态,ACTION_DOEN手指触摸屏幕的状态,ACTION_MOVE指的是手指在屏幕移动的状态。
TouchSlop:滑动的最小距离,指的是从手指触摸屏幕到手指抬起手指,这两个瞬间的手指所在位置的距离如果小于TouchSlop,系统认为当前的滑动不算数。
上代码演示
public class MyView extends View { private int x,y,left,right,top,bottom,rawX,rawY,touchslop; private int startx=0,starty=0,endx=0,endy=0; private String state=""; public MyView(Context context) { super(context); setFocusable(true); touchslop= ViewConfiguration.get(context).getScaledTouchSlop(); } @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setColor(Color.BLACK); paint.setTextSize(40); canvas.drawText(" MotionEvent:" + state, 50, 100, paint); if((Math.abs(startx-endx)*Math.abs(startx-endx)+Math.abs(starty-endy)*Math.abs(starty-endy))>touchslop*touchslop) canvas.drawText("滑动成功", 50, 200, paint); else canvas.drawText("滑动失败", 50, 200, paint); super.onDraw(canvas); } @Override public boolean onKeyDown(int keyCode,KeyEvent event) { return super.onKeyDown(keyCode, event); } @Override public boolean onKeyUp(int keyCode,KeyEvent event) { return super.onKeyUp(keyCode, event); } @Override public boolean onTouchEvent(MotionEvent event) { if(event.getAction()==MotionEvent.ACTION_DOWN){ state ="ACTION_DOWN"; startx=(int)event.getX(); starty=(int)event.getY(); } else if(event.getAction()==MotionEvent.ACTION_UP){ state ="ACTION_UP"; endx=(int)event.getX(); endy=(int)event.getY(); }else if(event.getAction()==MotionEvent.ACTION_MOVE){ state ="ACTION_MOVE"; } invalidate(); return true; }}public class MainActivity extends AppCompatActivity { private ListView listview; private TextView textv; private MyView view; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); view = new MyView(this); setContentView(view); }}
再见。
0 0
- android MotionEvent和TouchSlop触摸处理
- Android MotionEvent 和 TouchSlop
- MotionEvent和TouchSlop,;
- MotionEvent和TouchSlop
- Android 笔记 motionEvent 处理触摸事件
- Android 手势&触摸事件 MotionEvent
- Android 手势&触摸事件 MotionEvent
- Android 手势&触摸事件 MotionEvent
- Android 手势&触摸事件 MotionEvent
- Android的MotionEvent和事件处理
- Android的触摸事件MotionEvent event
- android 学习之触摸事件 -- 认识MotionEvent
- Android中触摸事件MotionEvent的来源
- MotionEvent(一) 单点触摸和事件传递
- Android 滑动(一)窗口坐标系和触摸控件——MotionEvent
- TouchSlop的初步认识(Android 判断触摸时是否滑动事件的常量)
- Android事件处理之MotionEvent
- Android中处理view弹起(即MotionEvent.ACTION_UP)事件发生时触摸点是否在该view组件的范围内
- HDU 5325 Crazy Bobo
- cocos2dx lua 为什么显示的内容之后,只有左下角无限增长?
- 最短路径by floyd算法
- nginx编译安装教程
- Dijkstra算法--图的最短路径
- android MotionEvent和TouchSlop触摸处理
- 【SPOJ7258】Lexicographical Substring Search-后缀自动机+拓补序递推
- Centos7 中 python 开发环境准备
- 如何实现按下两次退出键,退出程序
- (2)简单工厂模式
- linux 把cd 命令写在bash shell脚本里不起作用
- 程序清单3-2 InputTest
- Realm For Android
- php curl经典最常用例子