我有一個TextView
與OnTouchListener
。我想要的是當我得到MotionEvent
時用戶指向的字符索引。有什麼方法可以獲得TextView
的底層字體指標嗎?Android:如何確定觸摸事件在TextView中的位置的字符索引?
回答
我不知道的一個簡單直接的方式來做到這一點,但你應該能夠通過調用裝上去一起使用的TextView的Paint對象TextView.getPaint()
一旦你有噴漆的對象,你將有通過調用Paint.getFontMetrics()訪問底層FontMetrices,並訪問Paint.measureText()Paint.getTextBounds()和Paint.getTextWidths()等其他函數,以訪問顯示文本的實際大小。
你有沒有嘗試過這樣的事情:
Layout layout = this.getLayout();
if (layout != null)
{
int line = layout.getLineForVertical(y);
int offset = layout.getOffsetForHorizontal(line, x);
// At this point, "offset" should be what you want - the character index
}
希望這有助於...
我在Google IO辦公室工作時問Google工程師,這與他們提出的是一樣的。 – 2011-05-10 04:57:48
我很高興我找到了這個答案,謝謝Tony!它工作得很好! 即使TextView包含圖像,現在我也沒有任何問題處理觸摸事件。 :-) – einschnaehkeee 2011-11-29 14:49:15
感謝您拯救我的生命:) – Mingfei 2015-12-22 08:23:50
- 1. Android TextView觸摸事件
- 2. Android和觸摸事件的位置
- 3. 自定義TouchDevice觸發不正確位置的觸摸事件
- 4. Android瀏覽器觸摸事件位置
- 5. android:如何從觸摸事件中獲取文本位置
- 6. ViewPager中的TextView攔截觸摸事件
- 7. Android中的觸摸事件
- 8. Android:如何確定觸摸事件是否在圈內?
- 9. 確定BlackBerry的屏幕觸摸位置
- 10. UILabel觸摸點的字符索引
- 11. 在Android中的觸摸位置
- 12. Android沒有在滾動條的TextView上接收觸摸事件
- 13. 如何在Android中的確切觸摸位置放置圖像圖標
- 14. 如何綁定Android中的mapfragment的觸摸事件
- 15. 在Android中的MapView觸摸事件
- 16. 關於在Android中的觸摸事件
- 17. 的Android automatich觸摸事件
- 18. Android的觸摸事件
- 19. Android觸摸事件與選定的幀
- 20. 位圖imageview在android中的觸摸事件中自動縮放
- 21. Android - 使用setFixedSize()獲取觸摸事件的位置()
- 22. iphone:我如何獲取觸摸事件的位置?
- 23. Android TextView,將textview中的指定字符移動到指定的位置?
- 24. 添加圖像在觸摸位置的Android觸摸佈局
- 25. Android上的JavaScript中的觸摸事件
- 26. 如何在android中獲取大圖片的觸摸位置
- 27. 如何在AndEngine中觸摸位置?
- 28. 如何禁用觸摸事件android
- 29. Android小部件獲取觸摸位置
- 30. Android WebView中的觸摸事件
謝謝,我結束了使用此。太糟糕了,沒有簡單的「pointToCharacterIndex」類型的內置方法,但它不是我們自己感謝Paint的火箭科學。 – Epaga 2010-02-22 15:44:25
@Tony Blues的答案有點TOTharacterIndex你要找的東西。 – 2011-07-06 20:21:49