2011-12-23 101 views
5

我在文本視圖上使用touch listener。我可以通過運動事件獲得觸摸座標。在textview中觸摸座標

我可以通過單擊字符座標來獲取字符索引或靠近字符座標嗎?

例如,Hello Android

這是我的文字。現在我可以得到xy座標,但是當我觸摸它時,我可以得到字符索引。

回答

12

你必須在此改變onTouch()

具有以下

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; 


    } 
+0

這幫助了我很多嘗試。一直在研究如何在textview中突出顯示文本。 – 2012-02-03 03:21:07