2013-05-24 16 views
5

Tôi muốn ứng dụng Android của mình có nội dung nổi bật trong một số WebView. Tương tự như chức năng được tìm thấy trong sách chơi của Google. Có ai có ý tưởng làm thế nào để đạt được điều này?Đánh dấu tính năng Văn bản như sách chơi google

Tôi đang sử dụng WebView vì nội dung của tôi ở dạng html.

về cơ bản nói về hiệu ứng này:

enter image description here

+0

yaa. tôi đã nói về điều này ... Vì vậy, hãy giúp –

+0

bạn muốn đánh dấu văn bản trong khi chọn hoặc khi nào? – deadfish

+0

khi chọn. hiện tại tôi đang sử dụng chế độ xem web vì nội dung của tôi ở dạng html. nhưng không thể đạt được điều này trên trang web. bất kỳ tùy chọn nào khác –

Trả lời

0

Việc lựa chọn màu xanh bạn nhìn thấy là một phần của môi trường android tiêu chuẩn khi chọn văn bản. Vì vậy, điều đó sẽ hoạt động trên chế độ xem web chuẩn của bạn mà không cần bất kỳ mã tùy chỉnh nào. => Tôi không còn tin chắc điều này là đúng. Có vẻ như không phải vậy.

Lựa chọn màu xanh lục (vàng, cam, đỏ, ...) tuy nhiên là tùy chỉnh.

Bạn có thể đọc văn bản đã chọn từ sự kiện lựa chọn của mình và sử dụng thông tin đó để cập nhật nội dung html, bọc văn bản trong một khoảng với bộ màu nền.

Cách tiếp cận khác là sử dụng javascript và bật javascript trong chế độ xem web của bạn. Tuy nhiên, không chắc chắn làm thế nào để có được điều đó.

Một số nguồn để kiểm tra tiếp cận được https://github.com/btate/BTAndroidWebViewSelectionAndroid: How to select text from WebView, and highlight it onclick

Tiêu đề lựa chọn từ WebView chi tiết

Để có được lựa chọn văn bản làm việc trên một WebView bạn có thể sử dụng đoạn mã sau (from this question). Kích hoạt tính năng này bằng cách nhấp vào nút (hoặc sự kiện khác) từ menu (ngữ cảnh) của bạn.

private void emulateShiftHeld(WebView view) 
    { 
     try 
     { 
      KeyEvent shiftPressEvent = new KeyEvent(0, 0, KeyEvent.ACTION_DOWN, 
                KeyEvent.KEYCODE_SHIFT_LEFT, 0, 0); 
      shiftPressEvent.dispatch(view); 
      Toast.makeText(this, "select_text_now", Toast.LENGTH_SHORT).show(); 
     } 
     catch (Exception e) 
     { 
      Log.e("dd", "Exception in emulateShiftHeld()", e); 
     } 
    } 
+0

bạn có thể cụ thể hơn về sự kiện lựa chọn –

+0

Tôi đã cập nhật câu hỏi với một số chi tiết hơn. Rõ ràng nó không phải là mặc định như tôi nghĩ. Có vẻ như ngay cả lựa chọn cũng cần một số mã tùy chỉnh. Ví dụ được thêm vào câu trả lời ban đầu của tôi. – hcpl

0

Bắt đầu từ cấp API 11, bạn có thể sử dụng TextView's textIsSelectable flag.


Edit: Mặc dù các câu hỏi đã được chỉnh sửa để đề cập cụ thể WebView, bình luận OP @ Suhail của "nội dung của tôi là ở dạng html" không bị loại hoàn toàn TextView vì nó cũng có thể làm cho một số HTML cơ bản.

+0

làm thế nào để bạn thấy điều này kết hợp với webview trong trường hợp sử dụng này? Câu hỏi – hcpl

+0

@hcpl không chỉ định ngữ cảnh, ví dụ: 'WebView' hoặc' TextView' – laalto

+0

thực sự, tôi sẽ thêm hiệu chỉnh cho điều đó. Nó chỉ được đề cập trong các ý kiến ​​của câu hỏi rằng đây là cho một webview. – hcpl

0

Nếu bạn sử dụng WebView Hãy thử tích hợp Mozilla PDF.JS nơi bạn có thể hiển thị PDF. có thể chứa hình ảnh.