Tôi có số TextView
với số OnTouchListener
. Những gì tôi muốn là chỉ số ký tự người dùng đang trỏ đến khi tôi nhận được MotionEvent
. Có cách nào để lấy các chỉ số phông chữ cơ bản của TextView
không?Android: Cách xác định chỉ số ký tự của vị trí của sự kiện chạm trong TextView?
Trả lời
Tôi không nhận thức được một cách trực tiếp đơn giản để làm điều này nhưng bạn sẽ có thể đặt một cái gì đó với nhau bằng cách sử dụng đối tượng Paint của TextView qua một cuộc gọi đến TextView.getPaint()
Một khi bạn có đối tượng sơn bạn sẽ có truy cập vào FontMetrices bên dưới thông qua một cuộc gọi đến Paint.getFontMetrics() và có quyền truy cập vào các chức năng khác như Paint.measureText() Paint.getTextBounds() và Paint.getTextWidths() để truy cập kích thước thực của văn bản được hiển thị.
Các bạn đã thử một cái gì đó như thế này:
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
}
Hope this helps ...
Tôi đã hỏi các kỹ sư của Google tại giờ làm việc của Google IO và điều này cũng giống như họ đã nghĩ ra. –
Tôi rất vui vì tôi đã tìm thấy câu trả lời này, cảm ơn Tony! Nó hoạt động hoàn toàn tốt đẹp! Hiện tại, tôi không gặp bất kỳ sự cố nào khi xử lý sự kiện chạm ngay cả khi TextView chứa hình ảnh. :-) – einschnaehkeee
Cảm ơn bạn đã cứu mạng :) – Mingfei
- 1. Nhận tọa độ của sự kiện chạm trên Android
- 2. android: Cách nhận vị trí văn bản từ sự kiện chạm
- 3. TextView bên trong ViewPager chặn các sự kiện chạm
- 4. Cách xác định vị trí của UIBarButtonItem trong UIToolbar?
- 5. Xác định vị trí của Ruby Gems
- 6. Vị trí của "đầu" trong một ký tự Arrow-Unicode
- 7. tìm vị trí của ký tự trong chuỗi
- 8. Lỗi IOS 5 (safari) với sự kiện chạm HTML trên "vị trí: cố định" div
- 9. View.onTouchEvent chỉ đăng ký sự kiện ACTION_DOWN
- 10. Chỉ định tham số vị trí
- 11. Cách xác định vị trí thiết bị trong Android bằng địa chỉ IP
- 12. CSS Vị trí cố định với Ký tự tự động
- 13. Nhiều EditText - chỉ định vị trí của con trỏ
- 14. bản vẽ android trên sự kiện chạm
- 15. Vị trí của DialogFragment trong Android
- 16. Thêm một Textview vào FrameLayout ở một vị trí xác định
- 17. Cách chỉ định vị trí với wget?
- 18. Xác minh vị trí mảng chuỗi Android
- 19. Sự kiện chạm Javascript chậm trên Android
- 20. Android: làm thế nào để thay đổi vị trí của chỉ số ExpandableListView?
- 21. Argparse thứ tự không chính xác của các tham số vị trí và tùy chọn
- 22. Tham số defStyle của Android TextView bị bỏ qua?
- 23. Android canvas drawText y-vị trí của văn bản
- 24. Nhận vị trí của người dùng Android
- 25. Hiển thị các ký tự unicode trong TextView Android
- 26. Vị trí của chỉ thị `using` có tạo sự khác biệt trong C# không?
- 27. Tìm tọa độ chính xác của một ký tự đơn bên trong TextView
- 28. Cách/vị trí xác định giá trị mặc định của hộp thư đến?
- 29. Vị trí của một ký tự trong một NSString hoặc NSMutableString
- 30. Cách lấy vị trí của ký tự hoặc Chuỗi đã chọn trong EditText
Cảm ơn, tôi đã kết thúc sử dụng này. Quá xấu không có phương thức "pointToCharacterIndex" đơn giản được tích hợp sẵn, nhưng nó không phải là khoa học tên lửa để cuộn nhờ vào Paint của tôi. – Epaga
Câu trả lời @Tony Blues có loại pointToCharacterIndex mà bạn đang tìm kiếm. –