Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Android和svg中的楼层平面_Javascript_Android_Html_Svg_Android Canvas - Fatal编程技术网

Javascript Android和svg中的楼层平面

Javascript Android和svg中的楼层平面,javascript,android,html,svg,android-canvas,Javascript,Android,Html,Svg,Android Canvas,我想在我的Android应用程序中显示一个简单的自定义平面图,类似下图: 目标是为我当前所在的区域着色(我在我的应用程序中获得此信息): 如果这些区域中的每一个都可以单击来设置onclicklistener或类似的,并且能够像图像一样放大/缩小,那就太完美了 主要的限制是我希望所有东西都是本地的,也就是说,没有连接到internet服务来导入图像 我试过加载一个包含svg平面图的html,但是当我从一个区域移动到另一个区域时,我不知道如何从Android更改区域的颜色 我该如何处理这个问题?

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

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

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

主要的限制是我希望所有东西都是本地的,也就是说,没有连接到internet服务来导入图像

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


我该如何处理这个问题?

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

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


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

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

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


现在,假设您确实找到了一种更容易获取此数据的方法,那么您可以沿着自定义视图的路径并覆盖draw()。然后你可以在你想要的地方画出你的房间和位置,添加一个TouchListener,添加一个绘图状态机,等等。或者在View.draw()中,你可以使用GLSurfaceView和draw with hardware language。

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


我相信这篇文章是专门针对您的问题的

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


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

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

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

Hello Gregory。我不局限于SVG,因此如果您有一个更简单的替代方案可以完成这项工作,我很乐意尝试:)您应该阅读以下内容:创建您自己的视图,将数据集设置为,然后操纵该数据集来绘制。如果您需要进行挤压,它将变得更加复杂,但使用自定义绘图,您至少可以设置每个对象并渲染它们。我会使用一个基本的OnTouchListener,通过对象集传递x,y来确定它所接触的是哪个矩形,然后对其进行处理?例如,我在SVG中点击我的
路径
s,谷歌搜索更多信息,但SVG没有任何问题;路径可以与Hello Gregory交互。我不局限于SVG,因此如果您有一个更简单的替代方案可以完成这项工作,我很乐意尝试:)您应该阅读以下内容:创建您自己的视图,将数据集设置为,然后操纵该数据集来绘制。如果您需要进行挤压,它将变得更加复杂,但使用自定义绘图,您至少可以设置每个对象并渲染它们。我会使用一个基本的OnTouchListener,通过对象集传递x,y来确定它所接触的是哪个矩形,然后对其进行处理?例如,我在SVG中点击我的
路径
s,谷歌搜索更多信息,但SVG没有任何问题;路径可以交互谢谢你的建议,但是那样我就不能缩放了,因为每个视图都会被单独缩放,而不是作为一个整体图像进行缩放,对吗?在任何情况下,你都可以自己实现缩放行为,所以实现它是一种在某些情况下,整个视图被放大/缩小的方式。请记住,如果在onTouch方法中返回false,则可以将触摸事件发送到父视图(即网格布局)。我不知道如何实现缩放的确切细节,但我看不出与缩放和网格布局有任何冲突。也许我还没有完全理解你的问题,你能检查一下这个[链接]()给我一些线索或者指导我或者帮助我找到教程吗。当我点击时,我正试图通过Android摄像头将一些对象放置在现实世界的坐标上。谢谢你的建议,但这样我就无法缩放,因为每个视图都将单独缩放,而不是作为一个整体图像缩放,对吗?在任何情况下,你自己实现缩放行为,所以实现它是一个简单的过程