반응형
7. 그래픽 처리
7.1 그래픽 메커니즘
7.1.1 드로잉
안드로이드 운영체제는 뷰가 수정될 때마다 onDraw()
메서드를 호출
애플리케이션 상태가 변경되어 현재 화면에 그려진 내용을 고쳐야 할 때 View의 invalidate()
메서드 호출
onDraw()
를 오버라이딩해 원하는 내용을 그림
7.2 그래픽 관련 주요 클래스
7.2.1 캔버스(android.graphics.Canvas
)
그래픽을 그리기 위한 바탕
Activity > View > Canvas
onDraw() method에 오버라이딩하여 캔버스에 그림
7.2.2 페인트(android.graphics.Paint
)
캔버스에 그릴 때 색깔, 투명도, 붓 크기 제어
캔버스에 글씨를 쓸 때 글꼴, 크기, 스타일 제어
7.2.3 비트맵(android.graphics.Bitmap
)
이미지에 대한 픽셀 데이터를 제어
7.2.4 Path 클래스
선, 사갹형, 커브 등 벡터 그리기 명령어를 포함
/**
* 예) 원형 패스 정의
*/
circle = new Path();
circle.addCircle(150, 150, 100, Direction, CW);
/**
* 예) 텍스트 추가
*/
private static final String myNote = "안드로이드";
canvas.drawPath(circle, cPaint);
7.2.5 Color
색의 구성: 알파(alpha), 레드(red), 그린(green), 블루(blue)
32비트 정수
색상의 표현
int color = Color.BLUE; // 파란색
color = Color.argb(127, 255, 0, 255); // 반투명 보라
XML 리소스에서 색상 정의
<resource>
<color name="mycolor">#3500ffff</color>
</resource>
자바 코드 내에서 사용하는 방법
color = getResources().getColor(R.color.mycolor);
7.2.6 Drawable 클래스
비트맵, 단색 등과 같이 화면표시용 시각적 요소에 사용됨
다른 그래픽에 결합시킬 수 있으며 사용자 인터페이스 위젯(버튼이나 뷰의 배경)에 사용됨
7.3 실습예제
7.3.1 activity_main.xml
7.3.2 MainActivity.java
7.3.3 ShapeActivity.java
7.3.4 KeyActivity.java
7.3.5 multi_touch.xml
7.3.6 LineActivity.java
7.3.7 Missile.java
7.3.8 GameActivity.java
7.3.9 ImageRotateActivity.java
반응형