我正在开发一个项目,并且需要在某些对象中添加轻弹。但问题是区分轻弹快速或慢速的轻弹动作。 我可以识别android中的轻弹速度吗?
到目前为止的代码是;
public class MainActivity extends Activity implements
GestureDetector.OnGestureListener,
GestureDetector.OnDoubleTapListener{
private static final String DEBUG_TAG = "Gestures";
private GestureDetectorCompat mDetector;
// Called when the activity is first created.
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDetector = new GestureDetectorCompat(this,this);
mDetector.setOnDoubleTapListener(this);
}
@Override
public boolean onTouchEvent(MotionEvent event){
this.mDetector.onTouchEvent(event);
// Be sure to call the superclass implementation
return super.onTouchEvent(event);
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY) {
Log.d(DEBUG_TAG, "onFling: " + event1.toString()+event2.toString());
return true;
}
}
答案 0 :(得分:1)
Android's Documentation for OnFling应该给你答案:
velocityX float:沿x轴以每秒像素为单位测量此速度。 velocityY float:此投影的速度,以y轴为单位,以每秒像素为单位。
你过度了
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY) {
Log.d(DEBUG_TAG, "onFling: " + event1.toString()+event2.toString());
return true;
}
每次检测到飞行动作时都应该调用。因此,只需根据您要跟踪的轴移动来测量velocityX和velocityY。