1

我的问题与类似,但差异很大,我将发布一个新问题。

我正在编写一个图像查看器,它从远程服务器下载 PNG,将其保存到存储中,然后在 a 中打开它,WebView以便我免费获得多点触控缩放。这些图像通常是文档,因此用户希望能够放大很远。我正在发送足够分辨率的图像以启用此功能,但WebView似乎通过将图像缩放到屏幕尺寸开始“帮助”我。这意味着我的图像分辨率太低而无法正确放大。

我已经搜索了这个,我发现其他一些人遇到了类似的 问题,但我找到的唯一可能的解决方案是将图像切割成图块并使用 HTML 重新组合它们,然后再将其加载到视图中。这似乎是一个杂乱无章的事情,我问 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());
4

2 回答 2

0

更改视口属性可能会有所帮助,请查看

<meta name="viewport" ...>

html 标头中的元标记

于 2011-04-14T16:26:10.903 回答
0

我们最终通过使用平铺方法以艰难的方式解决了这个问题。我们在服务器上将图像拆分为垂直切片,然后将它们发送下来,在客户端使用 HTML 重新组合,然后再将其放入WebView.

实际上,它似乎工作得相当好。图形质量肯定更高,人们可以轻松阅读其中的文字。我们看到的唯一问题是平移和缩放的性能受到影响,由于我不知道的原因(但)仅在 Nexus S 上非常糟糕。

在其他情况发生变化之前,我认为这可能是在不编写自定义视图控件的情况下解决问题的唯一方法。

于 2011-07-21T19:16:06.577 回答