2013-08-05 74 views
0

如何通過知道它的索引來計算TextView中某個字母的位置X,Y? 我需要這個顯示一個圖形指針來觸摸字母或單詞,但我不知道如何找到正確的位置。謝謝你在前進在TextVeiw中查找文本位置

+0

如果你知道索引,那麼也許x =(Paint.measureText(yourText)/ yourText.length())*索引 –

+0

是單行TextView還是可以多行? –

+0

這是很大的TextView,有很多行;) –

回答

1

願這可以幫助您:

我不知道的一個簡單直接的方式來做到這一點,但你應該能夠通過調用裝上去一起使用TextView的Paint對象TextView.getPaint()..

一旦你有噴漆的對象,你將不得不通過調用訪問底層FontMetrices到​​和訪問其他功能,如Paint.measureText()Paint.getTextBounds()Paint.getTextWidths()用於訪問顯示文本的實際大小...

+0

聽起來很有幫助,Thx –

+0

@SoheilSetayeshi:歡迎好友..如果我的回答幫助你,那麼請不要忘記標記它.. –

+0

當然,讓我試試看吧:) –

1

試試這個:

Rect bounds = new Rect(); 
Paint textPaint = textView.getPaint(); 
textPaint.getTextBounds(text,0,text.length(),bounds); 
int height = bounds.height(); 
int width = bounds.width(); 

這應該給你的高度和寬度。爲每個單獨的字符創建一個具有不同值的高度/寬度數組,如果使用循環和ASCII字符代碼,則可以快速完成。然後,您可以添加每個角色的寬度,直到找到您想要的角色。

但我認爲這是一種更簡單的方法。嘗試使用多個文字視圖的LinearLayout,而不是TextView。如果你爲每個字符使用了一個textview,你可以使用getX和getY。