在android中查找touch和textview之间的距离

时间:2014-01-31 03:48:11

标签: java android

我正在设计一个Android应用程序,我想要发生的一件事是当用户点击页面时,我想找到他们点击的位置与页面上的TextView元素之间的距离。到目前为止,我所做的是使用

设置TextView ID
android:id="@+id/TableLayout01"

我知道我还需要以某种方式使用android:onTouch坐标,但我不确定如何将其合并到TextView

的坐标中

由于

1 个答案:

答案 0 :(得分:1)

您可以在整个活动中放置一个触控侦听器,并像这样计算距离。

public void onCreate() {
    setContentView(R.layout.somelayout);
    ...
    TextView textView = findViewById(R.id.TableLayout01);
    View mainView = getWindow().getDecorView().findViewById(android.R.id.content);
    mainView.setonTouchListener(new View.onTouchListener() {
        public boolean onTouch(View v, MotionEvent event) {
            int rawX = event.getRawX();
            int rawY = event.getRawY();
            int location[] = new int[2];
            textView.getLocationOnScreen(location);

            int distanceX = location[0] - rawX;
            int distanceY = location[1] - rawY;

            // Do something with the distance.
            return false;
        }
    }
    ...
}