Android WebView 中的定位和平移/缩放 Flot 图表

发布于 2024-12-14 04:17:22 字数 679 浏览 1 评论 0原文

我正在开发一个 Android 项目,其中有一个在 Flot 图表中运行="http://phonegap.com/" rel="nofollow">PhoneGap。以下是我的 HTML 页面的设置方式,布局由 jQuery Mobile 处理:

  • Flot "placeholder" div
  • 包含自定义的 div允许操作图表的按钮
  • 表单

以下是我遇到的问题:

  • 如何动态调整 Flot 图表的大小以适应屏幕上的可用空间? 现在,我将图表设置为静态大小,但我希望能够确定屏幕的尺寸(在陆地空间模式下),并将图表宽度设置为该尺寸。
  • 如何启用图表的平移和缩放? 我的应用程序在标准桌面浏览器中运行时支持该功能 - 在那里,我通过单击并拖动图表来平移,并通过旋转我的图表来缩放将鼠标滚轮放在图表上。当我在 Android 模拟器中尝试这些操作时,要么整个应用程序被平移(不仅仅是图表),要么什么也没有发生(鼠标滚轮在模拟器中不执行任何操作)。如何仅平移和缩放图表本身,而不是整个应用程序?

I'm working on an Android project where I have a Flot chart, running in PhoneGap. Here is how my HTML page is set up, with layout handled by jQuery Mobile:

  • Flot "placeholder" div
  • A div containing custom buttons that enable manipulation of the chart
  • A form

Here are the issues I have:

  • How do I dynamically size the Flot chart to fit the space available on the screen? Right now, I have the chart set to a static size, but I'd prefer to be able to determine the screen's size (in landspace mode), and set the chart width to that.
  • How do I enable panning and zoom of the chart? My app supports that functionality when it is run in a standard desktop browser - there, I pan by clicking and dragging the chart, and I zoom by rotating my mouse wheel over the chart. When I try those things in the Android emulator, either the entire app is panned (not just the chart), or nothing happens (the mouse wheel doesn't do anything in the emulator). How can I pan and zoom just the chart itself, not the entire app?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

删除会话 2024-12-21 04:17:22

1)
只需创建一个容器div,样式宽度:100%
当方向改变时,您可以通过添加 PhoneGap 事件侦听器来重绘图形:

$(window).bind('orientationchange', function(event) {
    $.plot($(graphId), .....
});

可以通过调用来调整图形大小,而不是重新初始化图形:

plot.resize();
plot.setupGrid();
plot.draw();

这也可能表现得稍好一些。

如果您在重绘之前遇到图形未正确清除的情况,您可以使用强制清除:

$(graphId).text('');

当图形位于 data-role=content 的 div 内时,我遇到了问题,只需删除 data-role 即可。

1)
Simply create a container div with style width:100%
You can redraw the graph when orientation changes by adding a PhoneGap eventlistener:

$(window).bind('orientationchange', function(event) {
    $.plot($(graphId), .....
});

Instead of reinitializing the graph can resize by calling:

plot.resize();
plot.setupGrid();
plot.draw();

This may also perform slightly better.

If you experience that the graph is not cleared correctly before redraw, you can force a clear using:

$(graphId).text('');

I've experienced problems when the graph is inside a div with data-role=content, just remove the data-role.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文