Выделите текстовую функцию, такую ​​как Google Play

Я хочу, чтобы приложение для Android WebView текст в WebView . Подобно функциям, найденным в Google Play Книге. Есть ли у кого-нибудь идеи, как это достичь?

Я использую WebView потому что мой контент находится в форме html.

В основном говоря об этом эффекте:

Введите описание изображения здесь

Начиная с уровня API 11, вы можете использовать флаг textIsSelectable TextView .


Изменить. Несмотря на то, что вопрос был теперь отредактирован, чтобы конкретно упомянуть WebView , комментарий OP @ WebView «мой контент в форме html» не полностью дисквалифицирует TextView как он также может отображать некоторые базовые HTML.

Синий выбор, который вы видите, является частью стандартной среды Android при выборе текста. Таким образом, это должно работать на вашем стандартном веб-просмотре без необходимости использования какого-либо настраиваемого кода. => Я больше не убежден, что это правда. Похоже, это не так.

Однако зеленый (желтый, оранжевый, красный, …) выбор является обычным.

Вы можете прочитать выделенный текст из своего события выбора и использовать эту информацию для обновления содержимого html, обернуть текст в промежутке с помощью набора цветов фона.

Альтернативный подход – использование javascript и включение javascript в вашем веб-просмотре. Не знаете, как это сделать.

Некоторые источники для проверки этого подхода: https://github.com/btate/BTAndroidWebViewSelection и Android: как выбрать текст из WebView и выделить его onclick

Выбор текста из данных WebView

Чтобы получить выбор текста, работающий в WebView вы можете использовать следующий фрагмент ( из этого вопроса ). Запустите это нажатие кнопки (или другое событие) из вашего (контекстного) меню.

 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); } } 

Если вы используете WebView, попробуйте интегрировать Mozilla PDF.JS, где вы можете визуализировать PDF. Который также может содержать изображения.