Android中有方法onTouchEvent()
。我从此方法获得x
和y
坐标。我想将每个坐标存储到二维数组中。我该怎么办?任何建议??
下面是我的代码
@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;
}
}
答案 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对象设置x
和y
的值。然后使用getter方法获取分配的值。
编辑,如@pskink所建议,您也可以使用Point / PointF
类来实现所需的功能,而无需创建单独的类。查看文档here和here。
答案 1 :(得分:1)
为什么要使用2D阵列?
您可以声明包含X和Y的Coordinates类
然后列出一个列表
在那之后,继续添加它list.add(coordinates),比2D数组简单得多