Android:让WebView显示位图的最简单方法?

Android:让WebView显示位图的最简单方法?,android,bitmap,zooming,pan,Android,Bitmap,Zooming,Pan,我有一些从远程源加载的图像存储在位图变量中,我想显示它们。除了在这些图像之间切换,用户还应该能够缩放和平移它们。我的第一个想法是通过一个intent将它们传递给内置的gallery应用程序,但这似乎是不可能的。 一些地方建议的解决方案是使用WebView,因为它已经支持缩放和平移。 我的问题是位图数据如何进入WebView?我必须先将其写入一个文件,然后再将其删除,还是有更简单的方法 或者有没有更好的方法来实现我的主要目标,即将位图数据显示为可缩放和可平移的图像?您可以使用webview直接远程

我有一些从远程源加载的图像存储在位图变量中,我想显示它们。除了在这些图像之间切换,用户还应该能够缩放和平移它们。我的第一个想法是通过一个intent将它们传递给内置的gallery应用程序,但这似乎是不可能的。 一些地方建议的解决方案是使用WebView,因为它已经支持缩放和平移。 我的问题是位图数据如何进入WebView?我必须先将其写入一个文件,然后再将其删除,还是有更简单的方法


或者有没有更好的方法来实现我的主要目标,即将位图数据显示为可缩放和可平移的图像?

您可以使用webview直接远程查看图像。您不再需要将图像保存到文件中。 下面是一个示例代码片段

myWebView.getSettings().setBuiltInZoomControls(true); //to get zoom functionalities

String url = "http://....."; //url of your image

String x= "<html><head><meta name=\"viewport\" content=\"width=device-width, minimum-scale=1.0\"/><style type=\"text/css\">html, body {margin: 0;padding: 0;} img {border: none;}</style><head><body style=\"background: black;\"><table><tr><td align=\"center\"><img src=\"" + url + "\" /></td></tr></table></body></html>";

myWebView.loadData(x, "text/html", "UTF-8");
myWebView.getSettings().SetBuilTinZoomControl(true)//获取缩放功能
字符串url=”http://....."; //您的图像的url
String x=“html,body{margin:0;padding:0;}img{border:none;}”;
loadData(x,“text/html”,“UTF-8”);

关于切换图像,您只需更改url的值,然后再次调用webview的loadData。

毕竟我对webview不满意,所以我最终创建了自己的图像查看活动。可以找到关于我如何加载的详细说明。

我希望传递已加载的位图数据的原因是,通过这种方式,我的应用程序可以缓存图像(在数据库中),因此只需加载一次。据我所知,webview已经具有缓存功能。您可以通过指定其缓存模式来覆盖其行为。myWebView.getSettings().setCacheMode(模式);你可以参考这个链接。您可以使用“LOAD_CACHE_ELSE_NETWORK”作为模式,在该模式下,如果存在内容,即使已过期,也会使用缓存从网络加载。另一种方法是自己手动处理缩放、平移和缓存,而不使用webview。您可以在android源代码的camera包下查看代码ViewImage.java。