首页 > 解决方案 > Flutter:仅检测图像中的手势

问题描述

我在使用手势检测器时遇到了一些问题。我有一组要添加 GestureDetector 的图像。但是,我只希望 GestureDetector 在图像的边界内处于活动状态。如下图所示。我有一些随机形状的图像,这些图像在图像后面是透明的。我想做一个手势检测器,只检测这些随机形状的内部。标有绿色的部分。我通过获取胶带的 local.position 然后检查它是否在带有 x^2 + y^2 = ... 的圆圈内来为圆圈执行此操作,但是这不能使用自定义形状来完成。有人可以帮助我解决这个问题吗?如果我只是用手势检测器标记图像,那么是否也可以点击图像的透明部分,这是我不想要的。谢谢

图片

标签: flutter

解决方案


这不是什么,你将能够在 Flutter 中本地完成。如果要提取确切的感兴趣区域,则需要进行图像处理以找到正确的形状。实时进行图像处理的最佳选择是 C/C++。Dart 有执行原生 C 的能力,看看这个:https ://dart.dev/guides/libraries/c-interop

您应该尝试提取图像区域的多边形边界框,然后使用多边形路径值使用CustomPainter绘制路径。

如果您不需要精确,请尝试手动通过简单的多边形路径来近似形状。用户可能不会注意到差异。


推荐阅读