我希望我的Android应用程序在WebView
内突出显示文本。与Google Play book中的功能类似。有没有人知道如何实现这个目标?
我正在使用WebView
因为我的内容是html格式。
基本上谈论这个效果:
答案 0 :(得分:0)
选择文本时,您看到的蓝色选项是标准Android环境的一部分。因此,这应该适用于您的标准网页浏览,而无需任何自定义代码。 =>我不再相信这是真的。看起来不是。
然而,绿色(黄色,橙色,红色......)选择是自定义的。
您可以从选择事件中读出所选文本,并使用该信息更新html内容,将文本包装在带有背景颜色集的范围内。
替代方法是在您的网页浏览中使用javascript并启用javascript。但不确定如何完成。
检查该方法的一些来源是https://github.com/btate/BTAndroidWebViewSelection和Android: 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。其中也可以包含图像。