突出显示文字功能,如谷歌游戏书

时间:2013-05-24 09:41:33

标签: android select text webview

我希望我的Android应用程序在WebView内突出显示文本。与Google Play book中的功能类似。有没有人知道如何实现这个目标?

我正在使用WebView因为我的内容是html格式。

基本上谈论这个效果:

enter image description here

3 个答案:

答案 0 :(得分:0)

选择文本时,您看到的蓝色选项是标准Android环境的一部分。因此,这应该适用于您的标准网页浏览,而无需任何自定义代码。 =>我不再相信这是真的。看起来不是。

然而,绿色(黄色,橙色,红色......)选择是自定义的。

您可以从选择事件中读出所选文本,并使用该信息更新html内容,将文本包装在带有背景颜色集的范围内。

替代方法是在您的网页浏览中使用javascript并启用javascript。但不确定如何完成。

检查该方法的一些来源是https://github.com/btate/BTAndroidWebViewSelectionAndroid: How to select text from WebView, and highlight it onclick

从WebView详细信息中选择文本

要使文本选择在WebView上运行,您可以使用以下代码段(from this question)。从(上下文)菜单中单击按钮(或其他事件)触发此操作。

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

答案 1 :(得分:0)

从API级别11开始,您可以使用TextView's textIsSelectable flag


编辑:尽管现在已经编辑了问题以明确提及WebView,OP @ Suhail的评论“我的内容采用html格式”并未完全取消TextView的资格,因为它也可以呈现一些基本的HTML。

答案 2 :(得分:0)

如果您使用WebView尝试集成Mozilla PDF.JS,您可以在其中呈现PDF。其中也可以包含图像。