如何声明一组对象移动和移出的点? [Android设备/爪哇]

时间:2014-03-26 23:49:16

标签: point ontouchevent ontouchlistener

我要做的是创建一个手写应用程序,允许用户按下对象(圆圈)并在设定的路径上向上/向下移动。如果用户到达最低点,则创建另一个圆形对象,并创建另一组点以跟随等。

到目前为止,我有一个onTouch事件,它将我的ImageView对象(圆圈)移动到手指在触摸屏上的位置。

https://gist.github.com/Temptex/9796403

如何让我的ImageView(Circle)对象从A点开始 - > B顺利使用onTouch事件?

编辑:我要问的图片示例:http://imgur.com/kjgGcba

1 个答案:

答案 0 :(得分:0)

为它创建了一个算法。

创建一个x整数和y整数的数组,并使用for循环检查对象是否为高(y坐标中的界限越大)并检查y和x是否超出数组中的界限。

如果它超出了整数数组的范围,请将其设置为当前的x / y数组值。在for循环中。

如果这有助于这里的任何人是代码:

private final int yCoOrdinate[] = {310, 360, 410};
private final int xCoOrdinate[] = {905, 890, 875};

// Get finger position
int x = (int)event.getRawX();
int y = (int)event.getRawY();

// View x/y co-ordinate on TextView
coordinates.setText("X = " + x + " - Y = " + y);

for(int i = 0; i < yCoOrdinate.length; i++) {

    // If object is to high set it to yCoOrdinate[0]                
    if(y <= yCoOrdinate[0]) {
        y = yCoOrdinate[0];
    }

    // Checks top left corner of A              
    if(y == yCoOrdinate[0] && x <= xCoOrdinate[0]) {
        x = xCoOrdinate[0];
        Log.d("Coordinate check", "X = " + x + "Y = " + y);

    // Checks if current x/y position if out of bounds and sets them to i
    } else if (y <= yCoOrdinate[i] && x <= xCoOrdinate[i]) {
        y = yCoOrdinate[i];
        x = xCoOrdinate[i];
        Log.d("Coordinate check", "X = " + x + "Y = " + y);
    }
}

我现在可以在界限内控制我的ImageView。