final int historySize = ev.getHistorySize();
for (int h = 0; h < historySize; h++) {
    ......
}程序里面做这样的操作  目的是什么~~能指点下吗?

解决方案 »

  1.   

    这样说会不会比较更容易理解:
    可以通过调用getHistorySize来获得历史的大小值,它可以返回当前事件可用的运动位置的数目。然后你可以通过使用一系列getHistorical*方法,并传递给它位置索引,来获得每一个历史事件的时间、压力、大小和位置,如下面的代码段所示:java代码:
     int historySize = event.getHistorySize(); for (int i = 0; i < historySize; i++) { long time = event.getHistoricalEventTime(i); float pressure = event.getHistoricalPressure(i); float x = event.getHistoricalX(i); float y = event.getHistoricalY(i); float size = event.getHistoricalSize(i); //待实现:使用每一个点 } 
    复制代码
     用来处理运动事件的一般模式是首先处理每一个历史事件,并在其后跟随当前的MotionEvent值,如下面的代码所示:java代码:
     @Override public boolean onTouchEvent(MotionEvent event) { int action = event.getAction(); switch (action) { case (MotionEvent.ACTION_MOVE) { int historySize = event.getHistorySize(); for (int i = 0; i < historySize; i++) { float x = event.getHistoricalX(i); float y = event.getHistoricalY(i); processMovement(x, y); } float x = event.getX(); float y = event.getY(); processMovement(x, y); return true; } } return super.onTouchEvent(event); } private void processMovement(float _x, float _y) { // 待实现:对移动作出反应 }