我编写了一个绘图应用程序,我想要检索我绘图的所有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();
}}
}
答案 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);
您可以从路径起点传递任何距离以获得点坐标。