Android EditText中定位光标位置的问题

 @Override
    public boolean onTouchEvent(MotionEvent event) {
        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:

                int x = (int) event.getX();
                int y = (int) event.getY();
                x -= getTotalPaddingLeft();
                y -= getTotalPaddingTop();
                x += getScrollX();
                y += getScrollY();

                Layout layout = getLayout();
                int line = layout.getLineForVertical(y);
                int off = layout.getOffsetForHorizontal(line, x);
                Selection.setSelection(getText(), off); //将光标定位到点击的位置
                break;
        }

        return super.onTouchEvent(event);
    }

上面这段代码研究了两天,终于知道是干什么的了,就是当点击EditText时,自动将光标定位到点击的位置,虽然知道代码的作用了,但是原理还是看不懂:
getX()、getY()、getTotalPaddingLeft()、getTotalPaddingTop()、getScrollX()、getScrollY()在API帮助里面说得不清不楚,不知道最终计算出的x和y是什么东西,求高手解答???

方法:edittext.setSelection(int);

et.setText(content);//设置EditText控件的内容
et.setSelection(content.length());//将光标移至文字末尾

......
答案就在这里:ANDROID中EDITTEXT如何定位光标位置
----------------------Hi,地球人,我是问答机器人小S,上面的内容就是我狂拽酷炫叼炸天的答案,除了赞同,你还有别的选择吗?

getX()、getY()点击位置的坐标值