【问题标题】:Android Web View - zooming the view along just one axis?Android Web View - 仅沿一个轴缩放视图?
【发布时间】:2014-03-14 15:01:36
【问题描述】:
我已经在我的应用程序中成功实现了一个 Web 视图,并且我正在使用内置的缩放控件 (setBuiltInZoomControls(true)) 来使用捏缩放来控制窗口的缩放。问题是我只想沿 y 轴缩放视图,这可以在例如谷歌日历应用程序。我想避免沿 x 轴横向滚动。有没有办法使用 Android API 工具包或可能支持移动设备的 Web 框架(如 jQuery Mobile)来实现这一点?
【问题讨论】:
标签:
android
web
webview
scaling
zooming
【解决方案1】:
您似乎想根据捏合手势而不是沿一个轴缩放来更改 UI,对吧?我的意思是从技术上讲,您可以调用 webview.setScaleY() 来更改沿 Y 轴的比例,但这意味着包括文本在内的所有内容都会垂直拉伸,因此可能不是您想要的。
要实现与 Calendar 类似的效果,您需要在 JavaScript 中处理捏缩放手势 - 您可能想要 setBuiltInZoomControls(false) 并使用您自己的 ScaleGestureDetector(this answer 中概述的一些选项)。然后,当您检测到比例变化时,您会在页面上调用一些 JavaScript 来更新 UI(我不知道这实际上会做什么 - 修改 CSS 规则的 height 属性或其他东西)。
另一种方法是使用 Hammer.js 之类的东西完全在 JavaScript 中检测捏合手势。