我可以让 Android WebView 支持其他图像格式(例如 TIFF)吗?

Can I make Android WebView support other image formats (e.g. TIFF)?

例如,如何使下面的 HTML 页面在 Android WebView 中实际显示图像?

<html>
<body>
<img src="http://www.alternatiff.com/sample.tif">
</body>
</html>

欢迎任何(黑客)建议。我只是一个应用开发者,无法控制整个系统,所以修改OS源代码不适用

我没试过,但我会这样做:

  • 创建 WebViewClient
  • 的子类
  • 覆盖 shouldInterceptRequest() 以检查 URL 并查看是否请求了 TIFF。如果不是 TIFF,return null 告诉 WebView 自己处理请求。
  • 如果请求 TIFF,请打开 HttpURLConnection 到 TIFF url 并读取数据,将 TIFF 转换为 JPEG 或 PNG ex. How to convert TIFF to JPEG/PNG in java 并设置 InputStream 读取 JPEG/PNG 个图像字节。
  • Return a WebResourceResponse 与 mime 类型(即 image/jpeg)和您创建的 InputStream 以读取图像数据。
  • 使用您的 WebViewClient 子类的实例在网络视图上调用 setWebViewClient

与其使用 JNI 库在设备上转换,我想我会在服务器上转换图像并打开 HttpURL连接到预转换的图像流,即 http://example.com/convert_tiff?url=http%3A%2F%2Fwww.alternatiff.com%2Fsample.tif&fmt=JPEG然后 return 即 InputStreamWebResourceResponse 中。我想这取决于带宽和服务器资源对您来说有多便宜。