【问题标题】:Floor-plan in Android and svg [closed]Android和svg中的平面图[关闭]
【发布时间】:2015-05-24 08:10:06
【问题描述】:

我想在我的 Android 应用中显示一个简单的自定义平面图,类似于下图:

目标是为我当前所在的区域着色(我在我的应用程序中获取此信息):

如果这些区域中的每一个也都可以单击以设置 onclicklistener 或类似的,并且能够像图像一样放大/缩小,那将是完美的。

主要的限制是我希望一切都是本地的,也就是说,没有连接到互联网服务来导入图像。

我尝试加载一个包含 svg 平面图的 html,但是当我从一个区域移动到另一个区域时,我不知道如何从 Android 更改区域的颜色。

我该如何处理?

【问题讨论】:

    标签: javascript android html svg android-canvas


    【解决方案1】:

    您可以在 WebView 中创建一个简单的 html 页面并附加 SVG 并添加 Javascript,以便在点击 svg 中的某些元素时调用 javascript 函数。然后,如果您的应用是本机的,或者只是在 html 中处理,您可以将事件发送到您的 android 应用中的本机 java 代码。

    我相信这篇文章是专门针对你的问题Interfacing with SVG

    【讨论】:

    • 您能否检查此 [链接] (youtube.com/watch?v=N25MxHZ9dDE) 并给我线索或指导我或帮助我查找教程。当我点击时,我正在尝试通过 Android 相机将一些对象放置在真实世界的坐标上。
    【解决方案2】:

    你的地板看起来很像网格布局!你为什么要做这么多工作来实现非常简单的事情?您需要做的是动态创建一个网格布局,然后将其他视图放入其中

    【讨论】:

    • 感谢您的建议,但这样我将无法缩放,因为每个视图将单独缩放,而不是作为整个图像进行缩放,对吗?
    • 在任何情况下,您都可以自己实现缩放行为,因此实现它是一种在某些情况发生时整个视图被放大/缩小的方式。请记住,如果您在 onTouch 方法中返回 false,您可以将触摸事件发送到作为网格布局的父视图。我不知道如何实现缩放的确切细节,但我看不出与缩放和网格布局有任何冲突。也许我没有完全理解你的问题
    • 您能否检查此 [链接] (youtube.com/watch?v=N25MxHZ9dDE) 并给我线索或指导我或帮助我查找教程。当我点击时,我正在尝试通过 Android 相机将一些对象放置在真实世界的坐标上。
    【解决方案3】:

    这是一个非常开放的问题。也不简单。

    您将不得不进行大量低级编码来实现您所概述的内容。无论如何,您都必须找到一种方法将 SVG 转换为可以交互的东西。这里的限制因素是您使用的是 SVG——这不是数据格式,而是矢量。除非您将 SVG 解析为对 UI 更有用的东西,或者可以以不同的格式(某种形式的解析 JSON?)获取此数据,否则您只是在显示图像。

    现在假设您确实找到了一种更容易获取这些数据的方法,您可以沿着自定义视图的路径前进并覆盖 draw()。然后你可以画出你想要的房间和位置,添加一个 TouchListener,添加一个绘图状态机等。除了 View.draw(),你可以使用 GLSurfaceView 并使用硬件语言进行绘图。

    【讨论】:

    • 你好,格雷戈里。我不限于 SVG,所以如果你有一个更简单的替代方案可以完成这项工作,我会很乐意尝试 :)
    • 您应该阅读以下内容:developer.android.com/training/custom-views/custom-drawing.html 创建您自己的视图并将数据集设置为,然后操作该数据集进行绘图。如果您需要捏合,它会变得更加复杂,但是使用自定义绘图,您至少可以设置每个东西并渲染它们。我会使用一个基本的 OnTouchListener,通过你的对象集传递 x,y 以确定它正在触摸哪个 Rect,然后处理它。
    • SVG 有什么问题?例如,我在 SVG 中附加了 OnClick 或我的 paths - 谷歌了解更多,但 SVG 没有任何问题;路径可以交互
    猜你喜欢
    • 1970-01-01
    • 2011-10-13
    • 1970-01-01
    • 2014-12-29
    • 2011-02-27
    • 2010-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多