PaintDemo-그리기 객체 사용

CODEDRAGON Development/Android

반응형

다양한 그리기 객체 사용

   

   

강의 내용

activity_main.xml

LinearLayout(Vertical) 변경

<kr.android.paint.MyView /> 추가

MainActivity.java

-

MyView.java

extends View

//Activity에서 커스텀 뷰를 사용하기 위한 생성자 정의

//XML에 element로 지정시 반드시 생성자 정의

//그리기 객체 생성 및 설정

   

activity_main.xml에 생성한 View 직접 지정

   

   

   

출력 결과

   

drawLine

소스 코드

paint.setColor(Color.GREEN);

paint.setStrokeWidth(10);

//시작x, 시작y, x, y, Paint객체

canvas.drawLine(50, 0, 50, 100, paint);

   

 

   

   

소스 코드

paint.setColor(Color.RED);

paint.setStrokeWidth(5);

for(int y=30, alpha=255; alpha>2; alpha-=50, y+=10){

//알파값 설정

paint.setAlpha(alpha);

//그리기

canvas.drawLine(0, y, 100, y, paint);                        

}

   

 

   

   

   

drawRect

소스 코드

paint.setColor(Color.WHITE);

//테두리 선만 그리기

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeWidth(1);

//왼쪽, 상단, 오른쪽, 하단, Paint

canvas.drawRect(120, 10, 120+80, 10+80, paint);

   

 

   

   

소스 코드

paint.setColor(Color.MAGENTA);

paint.setStyle(Paint.Style.FILL);

canvas.drawRect(220, 10, 220+80, 10+80, paint);

   

 

   

   

   

drawArc

소스 코드

paint.setColor(Color.MAGENTA);

//

canvas.drawArc(new RectF(150,120,150+100, 120+100),         //넓이 지정

0,                         //시작각도

50,                 //끝각도

true,                 //중심사용여부

paint);

   

 

   

   

   

drawOval

소스 코드

paint.setColor(Color.YELLOW);

canvas.drawOval(new RectF(20, 250, 20+100, 250+50), paint);

   

 

   

   

   

drawRoundRect

소스 코드

paint.setColor(Color.GREEN);

canvas.drawRoundRect(new RectF(150, 250, 150+100, 250+50),

10, 10,        //모서리가 둥근 정도

paint);

   

 

   

   

   

drawPath

소스 코드

//drawPath

paint.setColor(Color.BLUE);

//테두리만 그리기

paint.setStyle(Paint.Style.STROKE);

paint.setStrokeWidth(2);                

//Path지정

Path path = new Path();

path.moveTo(0, 0);

path.lineTo(30, 60);

path.lineTo(-30, 60);

//그릴 좌표설정이 완료되면 close( )

path.close();

//실제 도형이 만들어 지는 위치

path.offset(150, 340);

canvas.drawPath(path, paint);