У меня есть TextView
с OnTouchListener
. Я хочу, чтобы индекс символа указывал, когда я получаю MotionEvent
. Есть ли способ получить основные метрики шрифтов TextView
?Android: Как определить индекс символа позиции сенсорного события в TextView?
ответ
Я не знаю простой прямой способ сделать это, но вы должны быть в состоянии положить что-то вместе, используя Paint объект TextView через вызов TextView.getPaint()
После того, как у вас есть объект краски вы будете иметь доступ к основным FontMetrices через вызов Paint.getFontMetrics() и доступ к другим функциям, таким как 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 в часы работы Google IO, и это то же самое, что они придумали. –
Я так счастлив, что нашел этот ответ, спасибо Тони! Он отлично работает! Теперь у меня нет никаких проблем с сенсорными событиями, даже если TextView содержит изображения. :-) – einschnaehkeee
Спасибо, что спасли мою жизнь :) – Mingfei
- 1. FrameLayout кражи сенсорного события TextView в
- 2. Определить имя элемента на основе сенсорного события
- 3. Получить координаты сенсорного события на Android
- 4. Android. Как использовать код символа в TextView?
- 5. События Android TextView touch
- 6. Matlab определить индекс позиции в матрице
- 7. Android активности: Слушатель за пределы сенсорного события
- 8. Blackberry события сенсорного сталкиваясь
- 9. как найти индекс символа в строке с определенной позиции
- 10. Как определить индекс меток внутри события.
- 11. Включение сенсорного события?
- 12. Libgdx получить давление сенсорного события
- 13. Имитация сенсорного события в Android в фоновом потоке
- 14. Получение позиции TextView в TableLayout Android
- 15. Поворот одного символа в строке TextView Android
- 16. Отображение символа надстрочного символа ⁵ в TextView для Android
- 17. Как определить индекс символа, нажатого в TextArea в JavaFX?
- 18. Как отправить события сенсорного экрана из теста Android?
- 19. Продолжительность сенсорного экрана (Android)
- 20. Обработка отображения сенсорного события карты
- 21. Android Cant получает One TextView для анимации позиции другого TextView
- 22. Android: приложение падает во время сенсорного события в AndroidPlot
- 23. Как устранить проблему с производительностью сенсорного события?
- 24. Как получить позиции указанного символа?
- 25. Как определить ColorStateList для TextView?
- 26. Как получить индекс позиции галереи в PowerApps?
- 27. Как определить позиции MeshView?
- 28. Получить позиции позиции в строчном массиве android?
- 29. Найти позиции символа в строке
- 30. Как определить количество линий, видимых в TextView?
Спасибо, я в конечном итоге с помощью этого. Слишком плохо, что нет простого метода типа «pointToCharacterIndex», но это не была наука о ракетах, чтобы качать мою собственную благодарность Paint. – Epaga
@Tony Blues отвечает, что вещь pointToCharacterIndex вы ищете. –