dbr*_*der 160
@Override
public boolean onTouchEvent(MotionEvent event)
{
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}
Run Code Online (Sandbox Code Playgroud)
这三种情况是您可以对不同类型的事件做出反应,在此示例中,再次点击或拖动或抬起手指.
Sur*_*gch 22
鉴于 OnTouchListener
private View.OnTouchListener handleTouch = new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
int x = (int) event.getX();
int y = (int) event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
Log.i("TAG", "touched down");
break;
case MotionEvent.ACTION_MOVE:
Log.i("TAG", "moving: (" + x + ", " + y + ")");
break;
case MotionEvent.ACTION_UP:
Log.i("TAG", "touched up");
break;
}
return true;
}
};
Run Code Online (Sandbox Code Playgroud)
设置一些视图:
myView.setOnTouchListener(handleTouch);
Run Code Online (Sandbox Code Playgroud)
这将为您提供相对于分配了触摸侦听器的视图的触摸事件坐标.视图的左上角是(0, 0).如果您将手指移到视图上方,那么y将为负数.如果你将手指向左移动,那么x将是负面的.
int x = (int)event.getX();
int y = (int)event.getY();
Run Code Online (Sandbox Code Playgroud)
如果您想要相对于设备屏幕左上角的坐标,请使用原始值.
int x = (int)event.getRawX();
int y = (int)event.getRawY();
Run Code Online (Sandbox Code Playgroud)
Sep*_*phy 11
@Override
public boolean onTouch(View v, MotionEvent event) {
float x = event.getX();
float y = event.getY();
return true;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
128599 次 |
| 最近记录: |