Android WebView加载可绘制变量

时间:2014-02-15 16:21:50

标签: android webview android-drawable

我很好奇是否可以在内存中将可绘制的图像添加到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,而且我只提供了一个空白屏幕。

由于

2 个答案:

答案 0 :(得分:1)

您的问题的简单回答,无法直接在您正在尝试的WebView中添加应用程序资源或任何下载的图像中的图像。

为此,您需要在网站中添加并加载WebView或如果您有图片链接,请在WebView中加载该链接。

答案 1 :(得分:1)

WebView执行它自己的渲染,并且没有钩子可以放入解压缩的位图。

如果您只是想避免写入磁盘,那么您可以使用WebViewClient.shouldInterceptRequest将图像的InputStream返回给WebView(类似于https://stackoverflow.com/a/13142705/2977376

如果你想直接使用Drawable那么我唯一能想到的就是在你的HTML中有一个“洞”(实质上是一个大小与图像大小相当的空div)然后画出来自己在WebView上面的图像。这可能具有挑战性,因为您需要在自己的代码中处理缩放,平移和剪裁,所以我不推荐它。