获取android系统下手指触摸位置
来源:互联网 发布:linux windows 性能 编辑:程序博客网 时间:2024/04/28 10:36
手机屏幕事件的处理方法onTouchEvent。该方法在View类中的定义,并且所有的View子类全部重写了该方法,应用程序可以通过该方法处理手机屏幕的触摸事件。
其原型是:
public boolean onTouchEvent(MotionEvent event)
参数event:参数event为手机屏幕触摸事件封装类的对象,其中封装了该事件的所有信息,例如触摸的位置、触摸的类型以及触摸的时间等。该对象会在用户触摸手机屏幕时被创建。
返回值:该方法的返回值机理与键盘响应事件的相同,同样是当已经完整地处理了该事件且不希望其他回调方法再次处理时返回true,否则返回false。
该方法并不像之前介绍过的方法只处理一种事件,一般情况下以下三种情况的事件全部由onTouchEvent方法处理,只是三种情况中的动作值不同。
屏幕被按下:当屏幕被按下时,会自动调用该方法来处理事件,此时MotionEvent.getAction()的值为MotionEvent.ACTION_DOWN,如果在应用程序中需要处理屏幕被按下的事件,只需重新该回调方法,然后在方法中进行动作的判断即可。
屏幕被抬起:当触控笔离开屏幕时触发的事件,该事件同样需要onTouchEvent方法来捕捉,然后在方法中进行动作判断。当MotionEvent.getAction()的值为MotionEvent.ACTION_UP时,表示是屏幕被抬起的事件。
在屏幕中拖动:该方法还负责处理触控笔在屏幕上滑动的事件,同样是调用MotionEvent.getAction()方法来判断动作值是否为MotionEvent.ACTION_MOVE再进行处理。示例代码如下:MainActivity.java
package com.example.touchpostionshow;import android.os.Bundle;import android.app.Activity;import android.util.Log;import android.view.Menu;import android.view.MotionEvent;import android.widget.EditText;public class MainActivity extends Activity {public EditText pox,poY,condition;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main); pox = (EditText)findViewById(R.id.editText1); poY = (EditText)findViewById(R.id.editText2); condition = (EditText)findViewById(R.id.editText3);}@Overridepublic boolean onCreateOptionsMenu(Menu menu) {// Inflate the menu; this adds items to the action bar if it is present.getMenuInflater().inflate(R.menu.main, menu);return true;}@Overridepublic boolean onTouchEvent(MotionEvent event){float x = event.getX();float y = event.getY();try{switch(event.getAction()){case MotionEvent.ACTION_DOWN: pox.setText(""+x);poY.setText(""+y);condition.setText("down");break;case MotionEvent.ACTION_UP:pox.setText(""+x);poY.setText(""+y);condition.setText("up");break;case MotionEvent.ACTION_MOVE:pox.setText(""+x);poY.setText(""+y);condition.setText("move");break;}return true;}catch(Exception e){Log.v("touch", e.toString());return false;}} }
XML文件中添加三个编辑文本框分别用来显示坐标的X Y以及手指是按下 抬起还是处于移动。 0 0
- 获取android系统下手指触摸位置
- Android Touch事件获取手指触摸位置
- 第17天 Android Touch事件学习 4 获取手指触摸位置
- IOS获取当前手指触摸的点
- Android实现:手指触摸滑动切换Activity
- unity3d 根据手指触摸的位置去放置UI
- android引导页下方圆点位置跟随手指移动的实现
- 理论上 Android可以处理 多个手指的触摸
- 理论上 Android可以处理 多个手指的触摸
- android 对多个手指触摸的处理
- Android 两个手指同时触摸View时的思考
- android 触摸手指动作放大和缩小图片
- IOS手指触摸滑动
- 手指触摸事件
- 手指触摸GetTouch
- unity手指触摸事件
- 获取android触摸事件
- 基础代码--显示触摸屏幕的第一个手指的接触前后位置
- 什么叫做算法(代码篇)
- Makefile中的伪目标和变量定义格式
- linux 工作队列
- RedHat 6.3 源码安装 MySQL-5.5.29
- fghdfgh
- 获取android系统下手指触摸位置
- 内存泄露与野指针的思考
- Shell中取子串的方法
- 极限编程
- Activity的生命周期,BACK键和HOME对生命周期的影响
- 真是一个神奇的网站,想学习了
- Cannot drop the database [NAME] because it is currently in use
- oracle 死锁解决方法
- jpa