Search code examples
androidtextviewtouchlistenercoordinates

Touch coordinates in textview


I am using touch listener on text view. I can get the touch coordinates through motion event.

Can I get the character index or near by character coordinates on which I clicked.

Eg., Hello Android

This is my text. Now I can get the x y coordinates but can I get the character index, say A, when I touch it.


Solution

  • You have to overide onTouch()

    Try with the following

    public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
             Layout layout = ((TextView) v).getLayout();
                int x = (int)event.getX();
                int y = (int)event.getY();
                if (layout!=null){
                    int line = layout.getLineForVertical(y);
                    int characterOffset = layout.getOffsetForHorizontal(line, x);
                    Log.i("index", ""+characterOffset);
                    }
                return true;
    
    
        }