Android 和 svg 中的平面图
Floor-plan in Android and svg
我想在我的 Android 应用程序中显示一个简单的自定义平面图,类似于下图:
目标是为我当前所在的区域着色(我在我的应用程序中获取此信息):
如果这些区域中的每一个都可以点击以设置一个 onclicklistener 或类似的并且能够像图像一样缩放 in/out 就完美了。
主要限制是我希望一切都在本地,也就是说,没有连接到 Internet 服务来导入图像。
我已经尝试加载一个包含 svg 平面图的 html,但是我不知道如何在我从一个区域移动到 Android 时更改区域的颜色另一个。
我该如何处理?
这是一个非常开放的问题。也不简单
您将不得不进行大量低级编码才能实现您概述的内容。无论如何,您都必须找到一种方法将该 SVG 转换为可以与之交互的东西。这里的限制因素是您使用的是 SVG——这不是数据格式,而是矢量。除非您将 SVG 解析为对 UI 更有用的东西,或者可以以不同的格式获取此数据(某种形式的解析 JSON?),否则您只是在显示图像。
现在假设您确实找到了一种更易于访问此数据的方法,您可以沿着自定义视图的路径前进并覆盖 draw()。然后你可以在你想要的地方画出你的房间和位置,添加一个 TouchListener,添加一个绘图状态机等。除了 View.draw(),你可以使用 GLSurfaceView 并使用硬件语言绘制。
您可以在 WebView 中创建一个简单的 html 页面并附加 SVG 并添加 Javascript,因此当点击 svg 中的某些元素以调用 java 脚本时功能。然后,如果您的应用程序是原生的,您可以将事件发送到 android 应用程序中的原生 java 代码,或者只是在 html.
中处理它
我相信这篇文章是专门针对你的问题的Interfacing with SVG
你的地板看起来很像网格布局!!你为什么要做这么多工作来实现一些非常简单的事情?您需要做的是动态创建一个网格布局,然后将其他视图放入其中
我想在我的 Android 应用程序中显示一个简单的自定义平面图,类似于下图:
目标是为我当前所在的区域着色(我在我的应用程序中获取此信息):
如果这些区域中的每一个都可以点击以设置一个 onclicklistener 或类似的并且能够像图像一样缩放 in/out 就完美了。
主要限制是我希望一切都在本地,也就是说,没有连接到 Internet 服务来导入图像。
我已经尝试加载一个包含 svg 平面图的 html,但是我不知道如何在我从一个区域移动到 Android 时更改区域的颜色另一个。
我该如何处理?
这是一个非常开放的问题。也不简单
您将不得不进行大量低级编码才能实现您概述的内容。无论如何,您都必须找到一种方法将该 SVG 转换为可以与之交互的东西。这里的限制因素是您使用的是 SVG——这不是数据格式,而是矢量。除非您将 SVG 解析为对 UI 更有用的东西,或者可以以不同的格式获取此数据(某种形式的解析 JSON?),否则您只是在显示图像。
现在假设您确实找到了一种更易于访问此数据的方法,您可以沿着自定义视图的路径前进并覆盖 draw()。然后你可以在你想要的地方画出你的房间和位置,添加一个 TouchListener,添加一个绘图状态机等。除了 View.draw(),你可以使用 GLSurfaceView 并使用硬件语言绘制。
您可以在 WebView 中创建一个简单的 html 页面并附加 SVG 并添加 Javascript,因此当点击 svg 中的某些元素以调用 java 脚本时功能。然后,如果您的应用程序是原生的,您可以将事件发送到 android 应用程序中的原生 java 代码,或者只是在 html.
中处理它我相信这篇文章是专门针对你的问题的Interfacing with SVG
你的地板看起来很像网格布局!!你为什么要做这么多工作来实现一些非常简单的事情?您需要做的是动态创建一个网格布局,然后将其他视图放入其中