📅  最后修改于: 2023-12-03 15:38:12.597000             🧑  作者: Mango
在 Android 开发中,获取屏幕触摸坐标是一项常见的任务。Android 系统提供了多种方法来获取屏幕的触摸坐标,下面将介绍其中一种常见的方法。
Android 中的触摸事件是通过监听 View 的 onTouchEvent 事件来获取的。我们可以重写该方法来获取触摸事件。
@Override
public boolean onTouchEvent(MotionEvent event) {
// 处理触摸事件
return super.onTouchEvent(event);
}
上述方法会接收一个 MotionEvent 对象,该对象包含了当前的触摸事件的详细信息,包括触摸的位置等。
要获取触摸坐标,我们需要解析 MotionEvent 对象。MotionEvent 包含了多个数据项,其中包括触摸位置的坐标信息。
@Override
public boolean onTouchEvent(MotionEvent event) {
// 获取触摸位置的坐标信息
int x = (int) event.getX();
int y = (int) event.getY();
// 处理触摸事件
return super.onTouchEvent(event);
}
上述代码中,我们通过调用 getX() 和 getY() 方法来获取触摸位置的横纵坐标信息。
下面是一个完整的示例代码,用于演示如何获取屏幕的触摸坐标。
public class TouchActivity extends AppCompatActivity {
private TextView mTvTouch;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_touch);
mTvTouch = findViewById(R.id.tv_touch);
// 监听触摸事件
findViewById(R.id.fl_touch).setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
// 获取触摸位置的坐标信息
int x = (int) event.getX();
int y = (int) event.getY();
// 显示触摸坐标信息
mTvTouch.setText("Touch point: (" + x + ", " + y + ")");
// 返回 true 表示拦截事件
return true;
}
});
}
}
上述代码中,我们在布局文件中使用一个 FrameLayout 来布置触摸区域,并通过 setOnTouchListener() 方法来监听该区域的触摸事件。在触摸事件的处理代码中,我们通过调用 getX() 和 getY() 方法来获取触摸位置的坐标信息,并将其显示在 Textview 控件中。
Android 提供了多种方法来获取屏幕的触摸坐标,本文介绍了一种常见的方法。在具体的应用中,我们可以根据实际需求来选择合适的方法。