Gio*_*gen 14 svg flare dart flutter
我们正在开发一个基于 SVG 输入显示人体的应用程序。这个人体分为几个区域,比如头部、左臂、右臂、腹部等。
我们希望在用户点击例如一只手臂时突出显示图像的一个区域。在 Flutter 中实现这一目标的最佳方法是什么?
我们尝试将 Flare 用于 Flutter,但此库不提供与正在显示的人体的直接交互。
有没有更简单的方法:
GestureDetector;请注意,由于图像的部分重叠,简单的框将不起作用。可以看到我们想要达到的效果,我在这里点击了一只手臂。在它周围绘制一些可点击的框,效果不佳。
提前致谢。
Gio*_*gen 10
我通过使用built_path库使其工作,该库将 SVG 路径预编译为Path对象。然后我们将它包装成一个ClipPathWidget 如下:
return GestureDetector(
onTap: () => _bodyPartTapped(part),
child: ClipPath(
child: Stack(children: <Widget>[
Container(
color: pressedBodyPart == part
? Colors.blue
: Colors.transparent),
CustomPaint(painter: PathPainter(path))
]),
clipper: PathClipper(path)));
Run Code Online (Sandbox Code Playgroud)
如果按下它,它会将身体部位涂成蓝色,这工作得很好。
我创建了一个完整的例子,可以在这里找到:https : //github.com/gi097/flutter_clickable_regions