Android事件有关函数getHistorySize是什么含义
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/08 05:47:37
Android事件有关函数getHistorySize是什么含义
可以通过调用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) {
// 待实现:对移动作出反应
}
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) {
// 待实现:对移动作出反应
}