我的问题类似于this one,但又不同,我将发布一个新问题。
我正在编写一个图像查看器,可以从远程服务器下载PNG,将其保存到存储中,然后在WebView
中打开它,这样我就可以免费进行多点触控缩放。这些图像通常是文档,因此用户希望能够放大很远。我发送了足够分辨率的图像以启用此功能,但WebView
似乎通过将图像缩放到屏幕尺寸来“帮助”我。这意味着我的图像分辨率太低,无法正确放大。
我已经搜索了这个,我发现其他人遇到了similar problem,但我找到的唯一可能解决方案是将图片切割成瓷砖并使用HTML重新组合在视图中加载之前。这看起来像一个kludge,我问StackOverflow hivemind是否有人有办法关闭缩放,或者另一种方法来获得我需要的东西。
初始化WebView
的代码:
viewer = (WebView)findViewById(R.id.activity_imageviewer_webview);
viewer.setBackgroundColor(0);
WebSettings settings = viewer.getSettings();
settings.setJavaScriptEnabled(false);
settings.setBuiltInZoomControls(true);
settings.setUseWideViewPort(true);
settings.setLoadWithOverviewMode(true);
将图片加载到WebView
:
viewer.loadUrl(Uri.fromFile(imageFile).toString());
答案 0 :(得分:0)
更改视口属性可能会有所帮助,请查看
<meta name="viewport" ...>
html标题中的元标记
答案 1 :(得分:0)
我们最终通过使用平铺方法来解决这个问题。我们将图像拆分为服务器上的垂直切片,然后将它们发送到客户端使用HTML重新组装,然后将其放入WebView
。
在其他内容发生变化之前,我认为如果不编写自定义视图控件,这可能是问题的唯一解决方案。