我很好奇是否可以在内存中将可绘制的图像添加到Android中的WebView。
目前我正在传递一个Drawable对象,并希望将其直接添加到WebView而不将其保存到磁盘。
这可能吗?
示例:
WebView myWebView = (WebView) findViewById(R.main.Content);
InputStream is = (InputStream) new URL(imageURL).getContent();
Drawable image = Drawable.createFromStream(is, "src");
myWebView.add(image); //Fictitious code
我尝试过使用WebView的“SetBackground”方法,但是我不想将我的min API限制为Jellybean,而且我只提供了一个空白屏幕。
由于
答案 0 :(得分:1)
您的问题的简单回答,无法直接在您正在尝试的WebView
中添加应用程序资源或任何下载的图像中的图像。
为此,您需要在网站中添加并加载WebView
或如果您有图片链接,请在WebView
中加载该链接。
答案 1 :(得分:1)
WebView执行它自己的渲染,并且没有钩子可以放入解压缩的位图。
如果您只是想避免写入磁盘,那么您可以使用WebViewClient.shouldInterceptRequest将图像的InputStream
返回给WebView(类似于https://stackoverflow.com/a/13142705/2977376)
如果你想直接使用Drawable
那么我唯一能想到的就是在你的HTML中有一个“洞”(实质上是一个大小与图像大小相当的空div)然后画出来自己在WebView上面的图像。这可能具有挑战性,因为您需要在自己的代码中处理缩放,平移和剪裁,所以我不推荐它。