突出显示文本功能,如 google play book

Posted

技术标签:

【中文标题】突出显示文本功能,如 google play book【英文标题】:Highlight Text feature like google play book 【发布时间】:2013-05-19 21:04:00 【问题描述】:

我希望我的 android 应用程序在 WebView 中突出显示文本。类似于 Google play book 中的功能。有谁知道如何实现这一目标?

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

基本上讲这个效果:

【问题讨论】:

呀。我在谈论这个..所以你的帮助 您希望在选择时或何时突出显示文本? 选择时。我现在使用网络视图,因为我的内容是 html 形式。但不能在网络视图上实现这一点。任何其他选项 @SuhailMehta:你有没有找到任何可行的方法?我正在寻找在我的 Textview 或 Webview 中提供的类似功能,这些功能将显示 HTML。 【参考方案1】:

您看到的蓝色选择是选择文本时标准 android 环境的一部分。所以这应该可以在您的标准 webview 上运行,而不需要任何自定义代码。 => 我不再相信这是真的。好像不是。

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

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

另一种方法是使用 javascript 并在您的 web 视图中启用 javascript。但是不确定如何完成。

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

从 WebView 详细信息中选择文本

要在WebView 上进行文本选择,您可以使用以下 sn-p (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);
        
    

【讨论】:

你能更具体地了解选择事件吗 我已经用更多细节更新了这个问题。显然它不像我想象的那样默认。看起来即使选择也需要一些自定义代码。示例添加到我的原始答案中。【参考方案2】:

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


编辑:尽管现在已经对问题进行了编辑,特别提到了 WebView,但 OP @Suhail 的评论“我的内容是 html 形式”并没有完全取消 TextView 的资格,因为它还可以呈现一些基本的 HTML。

【讨论】:

在这个用例中你如何看待这与 webview 的结合? @hcpl 问题未指定上下文,例如WebViewTextView 确实,我会为此添加一个更正。仅在问题的 cmets 中提到这是针对 webview 的。【参考方案3】:

如果您使用 WebView 尝试将 Mozilla PDF.JS 集成到可以呈现 PDF 的位置。其中也可以包含图像。

【讨论】:

以上是关于突出显示文本功能,如 google play book的主要内容,如果未能解决你的问题,请参考以下文章

如何在swift中突出显示文本时触发事件

如何在python网络浏览器中突出显示文本,如查找文本

iOS - 我们将弹出的菜单类型称为啥,如突出显示文本时所见

Google Play Console 新增获客分析功能,帮您深入洞察用户行为

如何为选定的文本设置突出显示颜色

Google Play 显示内部测试 生产中的新功能