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

时间:2015-04-09 09:00:55

标签: android image android-webview tiff

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

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

任何(黑客)建议都表示赞赏。我只是一名应用程序开发人员,无法控制整个系统,因此修改操作系统源代码不适用。

1 个答案:

答案 0 :(得分:1)

我没试过这个,但这就是我要做的:

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

我认为不是使用JNI库在设备上进行转换,而是在服务器上转换图像并打开HttpURLConnection到预转换后的图像流,即http://example.com/convert_tiff?url=http%3A%2F%2Fwww.alternatiff.com%2Fsample.tif&fmt=JPEG,然后返回InputStreamWebResourceResponse中。我想这取决于带宽和服务器资源的便宜程度。