Движущиеся рисовать следуйте за пальцем - PullRequest
1 голос
/ 24 февраля 2012

У меня есть класс, который расширяет View.

private class Draw2D extends View{
             public Draw2D(Context context) {
        super(context);
              }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        x = event.getX();
        y = event.getY();
        switch(event.getAction()){
        case MotionEvent.ACTION_MOVE:{

            break;
        }

        }
        return super.onTouchEvent(event);
    }


    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.WHITE);
        ShapeDrawable rectangle = 
        new ShapeDrawable(new RectShape());
        rectangle.getPaint().setColor(Color.GRAY);
        rectangle.getPaint().setStyle(Paint.Style.STROKE);
        rectangle.getPaint().setStrokeWidth(3);
        rectangle.setBounds(50, 30, 200, 150);
        rectangle.draw(canvas);
    }
}

Я хочу, чтобы моя фигура двигалась по экрану. Что я должен написать в MotionEvent.ACTION_MOVE, чтобы делать то, что я хочу?

Ответы [ 2 ]

5 голосов
/ 24 февраля 2012

Эти уроки Youtube делают именно это;

Ссылка: https://buckysroom.org/videos.php?cat=6

Просто посмотрите учебники 71 , 72 и 73 , и все должно работать.

2 голосов
/ 24 февраля 2012

Вам нужно отследить координаты вашего чертежа, чтобы вы могли сравнить его с координатами x, y.

В общем:

// can modify to adjust speed at which drawable moves
int movementSpeed = 2;  

if (drawableX < x)
  drawableX += movementSpeed;
else if (drawableX > x)
  drawableX -= movementSpeed;

if (drawableY < y)
  drawableY += movementSpeed;
else if (drawableY > y)
  drawableY -= movementSpeed;

Затем необходимо перерисовать чертежобновлены drawableX, drawableY координаты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...