如何将每个坐标存储到二维数组Android

时间:2018-12-28 11:36:29

标签: android

Android中有方法onTouchEvent()。我从此方法获得xy坐标。我想将每个坐标存储到二维数组中。我该怎么办?任何建议??

下面是我的代码

 @Override
public boolean onTouchEvent(MotionEvent event) {
    int x = (int) event.getX();
    int y = (int) event.getY();
    switch (event.getAction()){
        case MotionEvent.ACTION_DOWN:
            Log.e("TAG", "Action down :==>>"+ x + "," + y + "");
            return true;
        case MotionEvent.ACTION_MOVE:
            return true;
        case MotionEvent.ACTION_UP:
            Log.e("TAG", "Action up:==>>"+ x + "," + y + "");
            return true;
        case (MotionEvent.ACTION_CANCEL) :
            Log.d("TAG","Action was CANCEL");
            return true;
        case (MotionEvent.ACTION_OUTSIDE) :
            Log.d("TAG","Movement occurred outside bounds ");
            return true;
        default :
            return false;
    }
}

2 个答案:

答案 0 :(得分:2)

创建用于存储坐标的POJO类

public class CoordinatePoint {
    int x, y;

    public CoordinatePoint(int x, int y){
        this.x = x;
        this.y = y;
    }

    public int getX() {
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }
}

现在在活动中创建ArrayList<CoordinatePoint>,然后可以在其中创建和存储对象。您可以使用构造函数,也可以使用setter方法为您的CoordinatePoint对象设置xy的值。然后使用getter方法获取分配的值。

编辑,如@pskink所建议,您也可以使用Point / PointF类来实现所需的功能,而无需创建单独的类。查看文档herehere

答案 1 :(得分:1)

为什么要使用2D阵列?

您可以声明包含X和Y的Coordinates类

然后列出一个列表

在那之后,继续添加它list.add(coordinates),比2D数组简单得多