当前位置:编程学习 > wap >>

Android事件有关函数getHistorySize()是什么含义?

在android中的MotionEvent的getHistorySize()函数是什么含义。
文档上:

Returns the number of historical points in this event. These are movements that have occurred between this event and the previous event. This only applies to ACTION_MOVE events -- all other actions will have a size of 0.


不过实在没有理解。请大侠指点。最好尽量详细写。谢谢 --------------------编程问答-------------------- 返回历史点击的点吧! --------------------编程问答--------------------  final int historySize = ev.getHistorySize();
for (int h = 0; h < historySize; h++) {
    ......
}

程序里面做这样的操作  目的是什么~~能指点下吗? --------------------编程问答-------------------- h是过去点击的动作的计数。因为一个动作其实是由一系列动作合成的,它总有先后顺序吧。这个就是先后顺序的排名。 --------------------编程问答-------------------- 这样说会不会比较更容易理解:


可以通过调用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) { 

// 待实现:对移动作出反应 


补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,