在Webview中自定义文本选择颜色

4

问题:

我们想要改变webview文本选择的颜色,使其显示与用户释放触摸时相同的颜色。 我已经完成了高亮部分,但我找不到一个很好的解决方案来更改选择颜色。

尝试过的方法:

  • ::selection CSS:这只适用于桌面浏览器,而不是android webview。
  • 在onDraw中手动绘制选择区域:这相当麻烦,因为我们必须自己管理坐标。

注意:

我看到许多电子书阅读器应用程序(Kindle,iBooks,aldiko,Moon + Reader)都有此功能,但我确实找不到解决方案。

如果有人有解决方法,请指导一下。 谢谢

Moon+Reader


我一直在尝试做同样的事情。我对触摸没有什么了解,但是对于计算机,我想捕获mousedown事件,然后是mousemove事件,并希望能够使用window.getSelection()捕获(某种方式)选择的像素位置。你已经解决了你的问题吗? - Firas Dib
2个回答

1
请在Webview显示的HTML内容之前添加一个<style>标签。 html_text = "<style> ::selection{ background: #3F51B5; color:#FFFFFF; } </style> <body> YOUR_CONTENT</body>"; 根据需要更改背景和文本颜色,然后将其传递给Webview: your_webview.loadDataWithBaseURL(null, html_text, "text/html", "utf-8", null);

0

它几乎不依赖于浏览器。在很多浏览器中它不起作用,在其他浏览器中则会有非常不同的效果。问题与 Chrome 中的激活框架轮廓相同。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接