일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- C++
- 네트워크 프로그래밍
- 파이썬
- 프로젝트
- c#
- 동영상 강의
- 원격 제어 프로그램
- 졸업 작품 소재
- 소켓 통신
- 졸업 작품
- 추천
- 무료 동영상 강의
- c언어
- 소스 코드
- Windows Forms
- 유튜브 동영상 강의
- 산책하기 좋은 곳
- 클래스 다이어그램
- 언제나 휴일
- 강의
- 캡슐화
- 실습
- 표준 입출력
- 동영상
- 언제나휴일
- 알고리즘
- 표준 라이브러리 함수
- 충남 천안
- 안드로이드 앱 개발
- 실습으로 다지는 c#
Archives
- Today
- Total
프로그래밍 언어 및 기술 [언제나휴일]
8. 그래픽 – 1. 기본 본문
이번에는 안드로이에서의 그래픽에 관해 간단히 알아보기 위한 실습을 할 거예요.
그래픽을 표현할 때에는 View 클래스에서 확장한 클래스를 정의하여 구현합니다. 그리고 기존 Activity 클래스의 onCreate 메서드에서 컨텐츠 뷰를 설정할 때 layout(activity_main.xml) 파일을 전달하였는데 여기에서는 View클래스에서 확장한 클래스 개체를 전달합니다.
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyGraphView(this));//R.layout.activity_main);
}
private static class MyGraphView extends View{
public MyGraphView(Context context){
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
}
}
}
View에서 파생한 클래스에는 onDraw 메서드를 재정의하고 이 곳에서 실제 그리기 작업을 진행합니다. 화면에 도형을 그릴 때 사용하는 개체는 Canvas이고 이 때 펜의 두께나 색상 등의 그리기 정보를 기억할 Paint개체를 이용합니다.
Paint paint = new Paint();
paint.setStrokeWidth(20);
canvas.drawLine(10,10,300,10,paint);
paint.setColor(Color.RED);
paint.setStrokeWidth(5);
canvas.drawLine(10,40,300,40,paint);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new Rect(10,50,100,120),paint);
paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(new Rect(120,50,220,120),paint);
paint.setColor(Color.GREEN);
canvas.drawCircle(360,100,80,paint);
paint.setColor(Color.BLUE);
canvas.drawRoundRect(300,200,400,300,50,50,paint);
paint.setStrokeWidth(4);
paint.setColor(Color.GREEN);
paint.setTextSize(60);
canvas.drawText("언제나 휴일",0,200,paint);
다음은 MainActivity.java 파일의 소스 코드입니다. 참고로 activity_main.xml 파일은 필요 없습니다.
package com.example.ehclub.ex_graphic1;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Path;
import android.graphics.Rect;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(new MyGraphView(this));//R.layout.activity_main);
}
private static class MyGraphView extends View{
public MyGraphView(Context context){
super(context);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setStrokeWidth(20);
canvas.drawLine(10,10,300,10,paint);
paint.setColor(Color.RED);
paint.setStrokeWidth(5);
canvas.drawLine(10,40,300,40,paint);
paint.setStyle(Paint.Style.FILL);
canvas.drawRect(new Rect(10,50,100,120),paint);
paint.setStyle(Paint.Style.STROKE);
canvas.drawRect(new Rect(120,50,220,120),paint);
paint.setColor(Color.GREEN);
canvas.drawCircle(360,100,80,paint);
paint.setColor(Color.BLUE);
canvas.drawRoundRect(300,200,400,300,50,50,paint);
paint.setStrokeWidth(4);
paint.setColor(Color.GREEN);
paint.setTextSize(60);
canvas.drawText("언제나 휴일",0,200,paint);
}
}
}
언제나휴일 추천 여행 및 산책
'Java 안드로이드 > 안드로이드' 카테고리의 다른 글
9. 파일 입출력 – 내부 저장 장치에 파일 입출력(일기장) (2) | 2025.01.04 |
---|---|
8. 그래픽 – 3. 그리기 실습 (2) | 2025.01.04 |
8. 그래픽 – 2. onTouchEvent에 따른 원과 선 그리기 (0) | 2025.01.04 |
7. 메뉴 – 2. Context Menu (0) | 2025.01.04 |
7. 메뉴 – 1. 옵션 메뉴 (0) | 2025.01.04 |
6. 대화상자 (2) | 2025.01.04 |
5. 기본 컨트롤 실습 – 도서 관리 앱 (1) | 2025.01.04 |
4. 기본 컨트롤 – 13. TabHost (0) | 2025.01.04 |