make a splash
article thumbnail
Published 2020. 6. 3. 23:04
그래픽 이벤트 Android Studio
728x90

K-MOOC 모바일 프로그래밍  7주차 그래픽과 이미지, 7-1 안드로이드 그래픽 에 대한 내용입니다.

 

안드로이드에서의 그래픽 사용 방법

(1) XML 언어로 그래픽, 애니메이션 정의

(2)그래픽 기능을 사용하기 위해서 onDraw() 메소드 안의 draw관련 함수 이용

draw관련 함수를 이용해서 그리기 메소드 호출하여 화면에 그림 그리기

 

커스텀 뷰 생성 > 커스텀 뷰 클래스의 onDraw 메소드 이용

 

작업 순서

1. 뷰 클래스에서 상속받은 커스텀 뷰를 새롭게 만들어야 함.

2. onCreate 함수에서 커스텀 뷰에 대해 지정.

3. onDraw함수에서 그리고자 하는 도형의 프로그램 실행.

 

Canvas 클래스 (도화지 + 액션 인식)

Paint 클래스 (붓, 물감, 속성)

 

Canvas 클래스 매소드들을 이용해 화면에 그림을 그림.

DrawPoint // 하나의 점 찍기

drawRect // 사각형 그리기

drawOval // 원, 타원 그리기

Drawline // 선 그리기

Drawcircle // 원 그리기

Drawtext // 글자 그리기

 

이 매소드들은 좌표계를 필요로 함.

> 스마트폰의 해상도를 알아야 한다 

> x와 y의 최댓값을 알아야 하기 때문. 왼쪽 맨 위가 (0,0)

 

Paint 속성

-색상 ( 예) paint.setColor(0xFF0000); paint.setColor(Color.RED); )

-선의 스타일 : Canvas 클래스에서 도형을 내부/경계선으로 구분한다. 도형 그리기 옵션 : FILL / FILL_AND_STROKE / STROKE 

 

실습1. 여러 도형과 글자 그래픽 보이기

class MyCustomView extends View {
    public MyCustomView(Context mycontext){
        super(mycontext); // 상속받은 뷰에서 정의 돼 있는 생성자의 일을 그대로 진행
        setBackgroundColor(Color.LTGRAY); // 캔버스 배경색 변경
    }
    // onDraw함수에서 화면 구성
    @Override
    protected void onDraw(Canvas mycanvas){ // mypaint라는 붓의 속성 바꾸기
        Paint mypaint=new Paint(); // mypaint 객체 생성
        mypaint.setColor(Color.BLUE); // 선의 색
        mypaint.setStrokeWidth(20); // 선의 두께
        mypaint.setTextSize(40);
        mycanvas.drawText("drawText를 사용한 텍스트",100,100,mypaint); // 쓰여질 글자, 시작될 위치, 쓸 붓

        mypaint.setColor(Color.YELLOW);
        mycanvas.drawRect(100,200,600,400,mypaint);

        mypaint.setColor(Color.RED);
        mycanvas.drawCircle(200,470,50,mypaint);
        mycanvas.drawCircle(500,470,50,mypaint);

        mypaint.setColor(Color.BLUE);
        mycanvas.drawLine(200,300,500,350,mypaint);
    }

}

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // 화면상에 보여줄 내용은 myview가 가지고 있음을 나타냄.
        // MyCustomView로 변수 myview를 만들고 onCreate 함수를 통해서 myview 초기값 생성


        MyCustomView myview = new MyCustomView(this);
        setContentView(myview); // myview 객체를 넘겨줌
    }
}

 

Path (패스) : 선, 곡선 등이 서로 연결돼 하나의 길다란 선을 만드는 작업

 

실습2. onDraw 함수에 Path 관련 코드 추가

Path mypath=new Path();
        Paint my2paint=new Paint();

        my2paint.setStyle(Paint.Style.STROKE); // 페인트 속성
        mypath.moveTo(100,600); // 함수를 통해서 path만들기, moveTo : 위치만 옮김
        mypath.cubicTo(300,600,400,800,500,700); // cubicTo : 4개의 좌표를 이용해서 곡선 그리기
        mypath.lineTo(400,800); // lineTo : 정해진 위치까지 선분 그리기

        my2paint.setColor(Color.MAGENTA);
        my2paint.setStrokeWidth(10);

        mycanvas.drawPath(mypath, my2paint);

        my2paint.setStyle(Paint.Style.FILL);
        my2paint.setTextSize(40);
        mycanvas.drawTextOnPath("Path 사용하기",mypath,0,0,my2paint);

 

 

728x90
반응형

'Android Studio' 카테고리의 다른 글

[코틀린문법] 입력 함수 readLine, readln, 자바 Scanner  (0) 2023.01.03
[코틀린 문법] 변수 타입, val과 var, const  (0) 2023.01.01
[Android] MVP 아키텍처  (0) 2022.04.11
리소스 관리  (0) 2020.06.10
터치 이벤트  (0) 2020.06.03
profile

make a splash

@vision333

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!