Android 프로그래밍에서 새로 생겨서 제 문제에 도움을 요청하고 있습니다. MouseEvent.ACTION_DOWN과 MouseEvent.ACTION_UP 사이의 시간을 초/밀리 초 단위로 측정하려고합니다.Android에서 두 MotionEvents 사이의 경과 시간을 측정하십시오.
@Override
public boolean onTouchEvent(MotionEvent event) {
long start=0;
if (event.getAction() == MotionEvent.ACTION_DOWN) {
// manage down press
start=System.nanoTime();//START
System.out.println("START");
}
else if (event.getAction() == MotionEvent.ACTION_MOVE) {
// manage move
System.out.println(event.getRawX()+","+event.getRawY());
}
else {
// manage up
long finish=System.nanoTime()//FINISH
long seconds = (finish-start)/1000000000;//for seconds
Toast.makeText(this, "FINISH, duration: "+seconds, Toast.LENGTH_SHORT).show();
System.out.println("FINISH, duration: "+seconds);
}
return true;
}
Logcat:
03-19 04:04:27.140: I/System.out(4348): START
03-19 04:04:27.160: I/System.out(4348): 517.0,280.0
03-19 04:04:27.190: I/System.out(4348): 517.0,280.0
03-19 04:04:27.200: I/System.out(4348): 517.0,280.0
03-19 04:04:27.220: I/System.out(4348): 517.0,280.0
03-19 04:04:27.250: I/System.out(4348): 517.0,280.0
03-19 04:04:27.260: I/System.out(4348): 517.0,280.0
03-19 04:04:27.300: I/System.out(4348): 517.0,280.0
03-19 04:04:27.310: I/System.out(4348): 517.0,280.0
03-19 04:04:27.330: I/System.out(4348): FINISH, duration: 16545
내 문제는 초 변수 (I 위 예 기간 correctly.For의 측정이 16545이라면, 내가 알지도 못하는 원하는 것을 보여주지 않는 것을 사실로 구성 ???! ?)?하지만 1-3 초 사이 여야합니다. 두 초 단위로 정확하게 측정하려면 어떻게해야합니까? 두 개의 MotionEvents 사이의 시간 또는 예가 밀리 초입니까? 고맙습니다 !
MotionEvent
나는 내 잘못을 발견 코드를보고, 감사 : 여기 – Matey
System.currentTimeMillis() 대신'System.nanoTime()'을 사용해야합니다. 두 함수에 대한 javadoc을 읽으십시오. 런타임에서 조정될 수 있기 때문에'currentTimeMillis()'는 측정 간격으로 사용해서는 안된다고합니다. – keaukraine
감사합니다 keaukraine, nanoTime() 사용을위한 변경된 내용 –