如何在抖动中跨多个设备识别图像的位置

时间:2019-12-14 19:51:06

标签: flutter dart gesturedetector

我正在尝试使用Flutter设计一个虚拟陈列室。我的计划是使用实体陈列室中的照片,并确定照片中的元素。当用户点击一个项目时,相应的详细信息将显示在下面。在单个设备上完成这项工作相当清楚,但是,我在弄清楚如何在不同设备上识别照片中的相同位置时遇到了麻烦。

通过使用GestureDetector,我可以捕获用户点击的位置,但是该位置由硬件反映出来,因此所得到的位置在设备之间不一致。

class _ButtonTestState extends State<ButtonTest> {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
        home: Scaffold(
            body: SafeArea(
                child: Center(
                    child: Column(children: [
                      GestureDetector(
                        //onTap: () =>onTap(),
                        onTapDown: (TapDownDetails details) => onTapDown(details),
                        //onTapUp: (TapUpDetails details) => onTapUp(details),
                        child: Image.asset('images/livingroom.jpeg',
                            fit: BoxFit.cover,
                          ),

                      ),
                    ])))));
  }
}

 void onTapDown(TapDownDetails details) {
  var x = details.globalPosition.dx;
  var y = details.globalPosition.dy;
  var xL = details.localPosition.dx;
  var yL = details.localPosition.dy;
  print("tap down global" + x.toString() + ", " + y.toString());
  print("tap down local" +  xL.toString() + ", " + yL.toString());
}

Tablet Example 在平板电脑上,右下角返回: I / Flutter(5501):向下点击全局797.9736328125,622.4609375 I / Flutter(5501):点按本地797.9736328125、622.4609375

phone example 在电话上,右下角返回: I / Flutter(9095):全局下移409.40708705357144,330.82589285714283 I / Flutter(9095):点击本地409.40708705357144、330.82589285714283

谢谢您的帮助。

0 个答案:

没有答案