Как нарисовать линию в выражении IF для Java - PullRequest
0 голосов
/ 24 мая 2011

Я пытаюсь запрограммировать приложение androd, в котором, если в двух местах экрана последовательно вводятся данные, оно проведет линию между двумя точками.Я уже установил значения «X» и «Y», которые работают, а столбцы и строки определяются значениями «X» и «Y».После этого у меня есть оператор IF, который должен провести линию между двумя точками.Скажем, если выбран первый столбец и второй ряд, а затем выбран первый столбец и третий ряд, я хочу провести линию между двумя точками.Также я не совсем уверен, как использовать материал MotionEvent или как вставить сенсорные действия в оператор IF.

     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 c = event.getX();
        double column = Math.floor(event.getX()/(480/12));
        double r = event.getY();
        double row = Math.floor(event.getY()/(630/12));


    if (column == 0 && row == 2 //there should be more stuff here 
                   ) {
                  //I dont know how to draw a line in here, please help
    }
        return true;     
        }
    });   
}

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Вместо того, чтобы объяснять детали здесь, я укажу вам на примеры кода из ApiDemos примера проекта, поставляемого с SDK, который, вероятно, делает именно то, что вы хотите:

Основная идея состоит в том, чтобы сохранить координаты X и Y в вашем обработчике событий касания, сделать недействительным View, а затем нарисовать линии в методе onDraw, используя Canvas операции, такие как drawLine.

0 голосов
/ 24 мая 2011

У вас теперь есть инструмент для рисования линии, наиболее подходящий для вас, это кажется Canvas.Если вы еще ничего не знаете о Canvas вместе с Android, я предлагаю вам изучить некоторые примеры, которые Android оставляет нам.Если вы это сделали, это будет простая задача.

...