cordinate X Y画Android

时间:2017-02-18 22:11:10

标签: java android arrays draw

我编写了一个绘图应用程序,我想要检索我绘图的所有X Y.也就是说,每当我触摸屏幕时,坐标x和y我将它们放在一个二维表中,

我做了一个toast来找出坐标发生变化的时候,我发现它们在movetouch方法中发生了变化,所以我在方法中声明了一个表格,我仍然敬酒,看看我的数组的10行,吐司改变了协调,所以我明白,实际上,只要x和y改变,或者我正在种植,价值就会被粉碎

 public boolean onTouchEvent(MotionEvent event) {
    float x = event.getX();
    float y = event.getY();
        switch (event.getAction()) {

            case MotionEvent.ACTION_DOWN:

                   startTouch(x, y);
                    invalidate();
                    break;

            case MotionEvent.ACTION_UP:

                    upTouch();
                    invalidate();
                    break;

            case MotionEvent.ACTION_MOVE:

                    moveTouche(x, y);
                    invalidate();
                    break;

        }
        return true;
    }

方法moveTouch

  public void moveTouche (float x,float y ) {
    if ((canDraw)&& drawing) {
    float dx = Math.abs(x - mX);
    float dy = Math.abs(y - mY);
    if(dx >= Tolerance || dy >= Tolerance){
        path.quadTo(mX,mY,(x+mX)/2,(y+mY)/2);
        mX = x ;
        mY = y;
        double[][]  point = new double [99][2];
        for (int i = 0; i < 99; i++) {

            point[i][0]=x;
            point[i][1]=y;


        }
        Toast.makeText(getContext(),"y = "+point[10][1]+" ",Toast.LENGTH_LONG).show();

    }}
}

enter image description here

1 个答案:

答案 0 :(得分:1)

您可以从任何路径中读取任意数量的点。示例如何从路径中间读取坐标:

PathMeasure pm = new PathMeasure(myPath, false);
//coordinates will be here
float aCoordinates[] = {0f, 0f};

//get coordinates of the middle point
pm.getPosTan(pm.getLength() * 0.5f, aCoordinates, null);

您可以从路径起点传递任何距离以获得点坐标。