在Android WebView中截取背景绘图/渲染

在Android WebView中截取背景绘图/渲染,android,android-webview,rendering,Android,Android Webview,Rendering,我正在尝试实现一个WebView,在我的应用程序顶部显示一些附加内容。只要web应用程序没有坚实的背景色/图像,它就工作得很好。由于我无法控制这些扩展应用程序,有时情况就是这样 问题是-有没有办法截取Android WebView中的背景绘图?我的想法是,如果我能连接到它,我可以用透明替换一些矩形,这样我的应用程序可以从下面显示。你可以尝试使web视图背景透明,它将使HTML的背景色无效 webView.setBackgroundColor(Color.TRANSPARENT); webView

我正在尝试实现一个WebView,在我的应用程序顶部显示一些附加内容。只要web应用程序没有坚实的背景色/图像,它就工作得很好。由于我无法控制这些扩展应用程序,有时情况就是这样


问题是-有没有办法截取Android WebView中的背景绘图?我的想法是,如果我能连接到它,我可以用透明替换一些矩形,这样我的应用程序可以从下面显示。

你可以尝试使web视图背景透明,它将使HTML的背景色无效

webView.setBackgroundColor(Color.TRANSPARENT);
webView.setLayerType(WebView.LAYER_TYPE_SOFTWARE, null);
确保在加载URL页面时调用此函数

如果它没有覆盖自定义CSS/HTML背景,那么您可以使用Webview的Javascript注入功能,在加载Webview时,您可以操作其属性,如删除具有特定id的按钮、更改背景颜色等。。 检查下面的链接以了解您的用例

在注释框中回答您的查询,由于逗号中的字符限制,无法回答

1.1)如果您不想完全删除背景->假设有任何HTML颜色背景假设#FF0000,并且您想使其稍微透明,您可以获取颜色,例如增加此颜色的透明度(#ABFF0000),再次将其设置为HTML背景

1.2)如果您在HTML中有一个图像作为背景,并且您不想完全删除它,那么您必须获取它的URL,下载它,处理它以使其变得透明,然后在Webview HTML中本地再次将其设置为背景,但这会占用太多内存,正如我前面提到的,还有一个解决方案可以使整个Webview稍微透明一点,但它可以使每个UI元素(如文本等)的所有内容都透明


2)是的,这是这种方法的一种折衷,我们正在处理Webview中已加载的HTML页面,但考虑到现在,大量用户已经移动到功能强大的设备,这不会影响观众。

您确定这会使HTML背景无效吗?它确实使WebView透明,如中使默认白色背景透明,但如果页面具有自定义html/css背景,它仍会显示:(哦@Kelevandos更新了答案,由于评论部分的字符限制,无法评论。我喜欢下载和修改背景的观点。这仍然不是我需要的全部解决方案,但如果没有其他问题,我将接受悬赏,因为它可以进一步工作。谢谢!至于设备评论-这不是真正有效的d在我的例子中,由于我的应用程序有一组特定的目标设备,其中一些非常非常慢:(@Kelevandos好的,对于Webview性能,您可以启用硬件加速,这可能会有所帮助,检查此项可以让您的问题更清楚一点。我的意思是使用一些临时图像。您想在应用程序内部显示web view,如对话框之类吗?这与我描述的差不多-Webview是应用程序顶部的装饰像教程或hbbtv之类的东西。它在本地应用程序的上下文中是令人不快的,在下面可见。因为我得到了你想要的东西,通过使用webview或textview制作自定义控件,它可以在一天内完成。