2017-11-24 1 views
0

손가락 터치 이벤트에서 직사각형을 이동하고 왼쪽, 오른쪽, 위쪽 또는 아래쪽 줄 손가락 터치를 이동하여 사각형의 크기를 조정합니다. 터치하거나 오른쪽 하단 모서리에서 이동하면 사각형이 회전합니다. 사각형 (그림에 표시) 및 다시 그립니다 (캔버스) android 누군가 도와 드릴 수 있으면 도와주세요.회선 터치 이벤트를 사용하여 크기 조정 및 회전

enter image description here

답변

0

View에서 자식 클래스에있는 모든이있는 경우이 기능을 할 수있는 가장 가까운 point to point 또는 point to line 거리를 파악해야 press(Point point) 당신이 방법

@Override 
public boolean onTouchEvent(MotionEvent event) { 
    final Point point = new Point((int) event.getX(), (int) event.getY()); 
    switch (event.getAction()) { 
     case MotionEvent.ACTION_DOWN: 
      press(point); 
      break; 
     case MotionEvent.ACTION_MOVE: 
      drag(point); 
      break; 
     case MotionEvent.ACTION_UP: 
      release(point); 
      break; 
    } 
    return true; 
} 

을 무시할 수 선택된. 그리고 방법 drag(Point point)은 rect를 드래그하는 데 도움이됩니다.

그리기

그리기는 onDraw(Canvas canvas) 방법으로 이루어져야하지만, 인스턴스는이 방법 밖에 있어야한다. 당신은 당신이 새로운 사각형을 만들 필요가 없습니다 크기를 조정하려고하면 그래서 당신은 그냥 사용합니다 크기 조정

당신의 생성자 Rect 정도

Rect rect = new rect(10, 10, 100, 100) 

을 만들

rect.set(x, y, dx, dy)

로테이트

회전하려는 경우 Canvas을 회전 한 다음 그려야하고 뒤쪽으로 돌려 다른 것을 그립니다.

canvas.save(); 
canvas.rotate(45); 
canvas.drawRect(rect, paint); 
canvas.restore(); 
관련 문제