触摸事件的问题

时间:2011-09-16 16:50:05

标签: android

说到事件,我们知道触摸屏方法onTouchEvent(MotionEvent事件)允许您捕获屏幕上的触摸事件和 event.getX() event.getY()给我触摸的坐标作为浮点值(即带逗号的值)。
    具体来说,我意识到在手机屏幕上使用手指固定点而不是移动它来使用logcat,事件不仅被感知,而且 MotionEvent.ACTION_DOWN MotionEvent.ACTION_MOVE 并且返回的坐标是多方面的。这是我能理解的,因为手指的表面通过读取设备坐标来触摸更多的点,并且相信手指在握住它的同时移动。

我的问题是,当我按住手指时,我会读取彩色图像的一个像素的颜色。特别是我需要手指占据的中心区域。 首先,假设你有一个Bitmap对象,我必须舍入到触摸的整数坐标,因为整个Bitmap的getPixel(intX,int y)坐标想要返回像素颜色。
    那么我如何获得中心点?是否有一个功能可以帮助我?请记住,当我停下并读取图像上像素的值时,我开始缓慢移动,即使我总是记录每个移动中心像素。我需要这个,因为每次移动,如果你改变图像的颜色,我想振动或不振动设备      如果我可以停止在动态数组中思考自己来存储不同像素的坐标并搜索重心,但移动我不知道该怎么做。然而,我认为研究重心,如果不能非常有效地进行,在移动过程中可能会变慢,然后产生错误的结果。如果CG对我来说还不够,那么属于环境的另一个点 我希望你可以用几行代码勾勒出来帮助我。 提前谢谢。

2 个答案:

答案 0 :(得分:1)

要获得手指的触摸位置,只需将getX()getY()强制转换为int并执行所需的任务。

public boolean onTouchEvent(MotionEvent event) {
    if (event.getAction() == MotionEvent.ACTION_DOWN ) {
      getPixelAt((int)event.getX(), (int)event.getY());
    }
}

答案 1 :(得分:0)

当您想要触摸事件发生时,您可以将您置于主要活动课程。让我们看看你可以放下以下代码吗?并且回归也是最重要的。

@Override
     public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
    mDistanceX = 0;
  }
  return super.onTouchEvent(event);
     }