【问题标题】:Android WebView Load Drawable VariableAndroid WebView 加载可绘制变量
【发布时间】:2014-02-15 16:21:49
【问题描述】:

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

谢谢

【问题讨论】:

    标签: android webview android-drawable


    【解决方案1】:

    WebView 进行自己的渲染,没有挂钩让您​​放入解压缩的位图。

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

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

    【讨论】:

      【解决方案2】:

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

      为此,您需要在您的网站中添加所有内容并加载到WebView,或者如果您有图片链接,则将该链接加载到WebView。

      【讨论】:

      • 我的图像不在应用程序资源中。它是一个已经在内存中的可绘制对象。
      • 可以使用file:///android_asset/ URL 将应用程序资源中的图像添加到WebView。见:stackoverflow.com/questions/19857225/…
      • @marcin.kosiba,不,您不能直接从 webview 中的应用程序资源加载可绘制对象,我知道您共享的链接,您必须添加 html 网站页面然后使用html 中的<img 标签。 OP希望直接在webview中加载drawable而不创建不可能的html页面
      • @TGMCians - 同意。我要指出的是您陈述答案的方式,这使得您似乎无法加载来自应用程序资源的图像根本。
      • 我在答案中写了同样的内容-为此,您需要在网站中添加并加载到 WebView 中,或者如果您有图片链接,则在 WebView 中加载该链接
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-31
      • 1970-01-01
      • 2018-01-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多