两次单击后如何使工作正常

|| 我正在尝试为android创建一个应用程序,我想我需要使该程序获得一个点的(X,Y)值,然后又一次单击获得另一个值,这样我就可以在用户的​​两点之间绘制一条线点击。如果有更好的方法来获取X,Y信息,那么我想知道。谢谢。
final View touchView = findViewById(R.id.touchView);
touchView.setOnTouchListener(new View.OnTouchListener() {
    @Override         
    public boolean onTouch(View v, MotionEvent event) { 
        String.valueOf(event.getX() + String.valueOf(event.getY()));
        double x = event.getX();
        double y = event.getY();
        return true;
    }
}); 
    
已邀请:
我会做这样的事情...
public class MyActivity extends Activity
    implements View.OnTouchListener {

    int touchCount = 0;
    double startX, startY, endX, endY;
    View touchView = null;
    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Set content view on the next line to whatever your
        // layout XML file is. For example main.xml
        setContentView(R.layout.main);
        touchView = findViewById(R.id.touchView);
        touchView.setOnTouchListener(this);
    }

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        if (v.equals(touchView)) {
            if (touchCount == 0) {
                startX = event.getX();
                startY = event.getY();
                touchCount++;
            }
            else {
                endX = event.getX();
                endY = event.getY();
                touchCount = 0;
                DrawLine();
            }
            return true;
        }
        return false;
    }

    private void DrawLine() {
        // Process the start / end X,Y points to draw a line here
    }
}
    
您获取x和y的函数看起来不错。我要做的只是将x和y坐标放在全局x1和y1变量中,然后第二次单击/触摸将它们放在x2和y2中,然后在具有全局变量的值时画一条线。 .. 您可以使用if语句或类似的方法进行操作。如果您需要两个以上的点,则可以将所有x和y坐标放置在一个数组中,然后更新视图以在添加到数组的每个新点之间绘制一条线... 编辑 这里只是一个小片段,但是您需要一个更干净的版本:
double x1 = null;
double y1 = null;
double x2 = null;
double y2 = null;

final View touchView = findViewById(R.id.touchView);
touchView.setOnTouchListener(new View.OnTouchListener() {
    @Override         
    public boolean onTouch(View v, MotionEvent event) { 
        String.valueOf(event.getX() + String.valueOf(event.getY()));
        if (x1 == null) {
            x1 = event.getX();
            y1 = event.getY();
        } else {
            x2 = event.getX();
            y2 = event.getY();
        }

        // draw a line between x1,y1 and x2,y2 here...

        return true;
    }
});
再说一遍...这是我在那写的代码,真的很糟糕,我只是写了它以表明我在答案中的意思。一旦您确切地知道想要什么以及要绘制多少点和线,就可以修改和使用数组或实现中可能需要的其他任何东西。 希望这可以帮助并清除我的答案吗?     

要回复问题请先登录注册