如上面的函数是干什么的? 
void printSamples(MotionEvent ev) {  
   final int historySize = ev.getHistorySize();  
   final int pointerCount = ev.getPointerCount(); 
    for (int h = 0; h < historySize; h++) {     
    System.out.printf("At time %d:", ev.getHistoricalEventTime(h)); 
        for (int p = 0; p < pointerCount; p++) {   
          System.out.printf("  pointer %d: (%f,%f)",      
           ev.getPointerId(p), ev.getHistoricalX(p, h), ev.getHistoricalY(p, h));   
      }   
  }   
  System.out.printf("At time %d:", ev.getEventTime());  
   for (int p = 0; p < pointerCount; p++) {   
      System.out.printf("  pointer %d: (%f,%f)",   
          ev.getPointerId(p), ev.getX(p), ev.getY(p));  
   }
 }

解决方案 »

  1.   

    android设备的触摸屏一般不会采到很多点,也就是说,你在屏幕上从上到下画一个竖线,可能只会采集到10几个点,但是同样的长度在pc上会采集到比它多好几十倍的点的个数,所以说,这个getHistorical的函数就是用来获取历史点的,也就是说每两次move事件之间可能还有一些坐标,只不过系统不确定,所以作为缓存了,但是你依然可以使用,这样画曲线时就比较平滑了。不然只用event的move事件,点不会很多
      

  2.   


    下面那段代码是motionEvent的例子,是做什么的,没看懂?