Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.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
从android中的运动事件获取所有x和y坐标_Android_Drawing_Coordinates_Points - Fatal编程技术网

从android中的运动事件获取所有x和y坐标

从android中的运动事件获取所有x和y坐标,android,drawing,coordinates,points,Android,Drawing,Coordinates,Points,我目前正在开发自己的基本绘图应用程序。到目前为止,我的应用程序运行得很好,但我注意到我的运动事件似乎没有得到所有被触摸的X轴和Y轴点 当我在屏幕上移动手指时,圆圈之间有明显的空隙。只有当我慢慢移动手指时,它才能捕捉到所有的点。有没有一种方法我可以抓住所有的点,或者有没有一种方法我可以优化它来处理所有的点 我是这样做的: setOnTouchListener(new View.OnTouchListener() { public boolean onTouch(View v, M

我目前正在开发自己的基本绘图应用程序。到目前为止,我的应用程序运行得很好,但我注意到我的运动事件似乎没有得到所有被触摸的X轴和Y轴点

当我在屏幕上移动手指时,圆圈之间有明显的空隙。只有当我慢慢移动手指时,它才能捕捉到所有的点。有没有一种方法我可以抓住所有的点,或者有没有一种方法我可以优化它来处理所有的点

我是这样做的:

setOnTouchListener(new View.OnTouchListener() {

        public boolean onTouch(View v, MotionEvent event) {

                int x; 
            int y;    

            switch (event.getAction())
            {
                case MotionEvent.ACTION_DOWN:
                {
                    x = (int) event.getX();
                    y = (int) event.getY();   
                    //method draws circle at x and y coordinate
                    MyPainter mp = new MyPainter(x,y);

                    break;
                }
                case MotionEvent.ACTION_MOVE:
                {
                    x = (int) event.getX();
                    y = (int) event.getY();
                MyPainter mp = new MyPainter(x,y);

                    break;
                }
            }
            return true;

        }
    });

如有任何建议或意见,我们将不胜感激。谢谢

这正是硬件的设计方式。硬件每秒对触摸屏进行N次采样,并在每次感应到手指时吐出坐标


如果移动速度比屏幕样本快,则报告的数据中会有间隙。你能做的唯一一件事就是沿着两次接触之间的直线插值,自己生成缺失的点

接受的答案并不完全正确,可以使用以下方法从图形访问触摸数据:

event.getHistorySize();   // returns the number of data points stored as an int
event.getHistoricalX(int);
event.getHistoricalX(int);
当存在多个指针时,可以使用其他相关方法(请参阅)


我们可以找到一个很好的例子,说明如何在实践中使用这种方法

我在看表面视图。。显然,这是为了快速绘图。这能解决我的问题吗?你解决了这个问题吗?我陷入困境,需要帮助。