2011-12-23 12 views
5

テキストビューでタッチリスナーを使用しています。私はモーションイベントを通してタッチ座標を得ることができます。テキストビューのタッチ座標

クリックした文字インデックスまたは文字座標を近くで取得できますか?

例えば、Hello Android

は、これが私のテキストです。今私はx yの座標を得ることができますが、私はそれを触れると、文字のインデックス、Aを得ることができます。

答えて

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

で試してみて下さい。テキストビューでテキストを強調表示する方法を検討しています。 –

関連する問題