티스토리 뷰

 

 

 Android 의 drawLine과 drawPath 사용법 가이드

drawLine은 스펠링 그대로 선을 하나 그려주는 것이고,

drawPath는 개발자가 경로를 정해준 후에 그 경로대로 canvas에 그리는 것입니다

 

canvas.drawLine(startX, startY, stopX, stopY, Paint)

drawLine(X좌표 시작, Y좌표 시작, X좌표 끝, Y좌표 끝, 페인트)

drawLine 을 이용하여 아래의 시작과 끝을 잇는 선을 간단하게 그리는 방법입니다.

(0, 0) -> (360, 640)

public class MainActivity extends AppCompatActivity
{
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        ViewEx viewEx = new ViewEx(this);
        setContentView(viewEx);
    }

    protected class ViewEx extends View
    {
        public ViewEx(Context context)
        {
            super(context);
        }
        public void onDraw(Canvas canvas)
        {
            canvas.drawColor(Color.BLACK);

            Paint MyPaint = new Paint();
            MyPaint.setStrokeWidth(5f);
            MyPaint.setStyle(Paint.Style.FILL);
            MyPaint.setColor(Color.GRAY);
            canvas.drawLine(0,0,360,640,MyPaint);
        }
    }
}

 

 

canvas.drawColor(Color.BLACK);

캔버스를 검은색으로 깔아두고

Paint MyPaint 선언후 5f의 두께, setStyle은 FILL. 색상은 Gray로 설정하고

아래와 같이 drawLine 설정시 아래와 같은 선 입력이 됩니다.

drawLine(0, 0, 360, 640, MyPaint);

 

 

 

canvas.drawPath(path, Paint)

drawPath 를 사용하기 위해서는 Path, moveTo, lineTo 를 호출하여 사용 합니다.

// Path 객체 생성
Path path = new Path();

// path의 시작 위치 초기화
path.moveTo(100,100);

// x,y 좌표를 lineTo로 이동시켜주면서 설정
path.lineTo(100,100);
path.lineTo(100,200);
path.lineTo(200,100);
path.lineTo(200,200);
path.lineTo(300,100);

canvas.drawPath(path, MyPaint);

결과는 아래와 같이 생성

 

추가로 위 코드에서 아래의 path.close 를 입력하게 되면 초기 moveTo 에서 입력한 시작 위치까지 선이 그려집니다.

// Path 객체 생성
Path path = new Path();

// path의 시작 위치 초기화
path.moveTo(100,100);

// x,y 좌표를 lineTo로 이동시켜주면서 설정
path.lineTo(100,100);
path.lineTo(100,200);
path.lineTo(200,100);
path.lineTo(200,200);
path.lineTo(300,100);

// 마지막 포인트 부터 시작 지점까지 이어주는 선을 이어준다.
path.close();

canvas.drawPath(path, MyPaint);

 

 

 

댓글

파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음



Total
Today
Yesterday
최근에 달린 댓글