JAVA
package com.example.a09_29;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.View;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main); // activity_main.xml에서 레이아웃을 설정합니다.
MyView w = new MyView(this); // 현재 컨텍스트를 전달하여 MyView의 인스턴스를 생성합니다.
setContentView(w); // MyView를 액티비티의 콘텐츠 뷰로 설정합니다.
}
// MainActivity 내부에 MyView를 내부 클래스로 정의합니다.
class MyView extends View {
public MyView(Context context) {
super(context);
setBackgroundColor(Color.YELLOW); // MyView의 배경색을 노란색으로 설정합니다.
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas); // 기본 그리기 동작을 수행하기 위해 상위 클래스 메서드를 호출합니다.
Paint paint = new Paint(); // 그리기를 위한 새 Paint 객체를 생성합니다.
paint.setAntiAlias(true); // 부드러운 가장자리를 위해 안티앨리어싱을 활성화합니다.
paint.setTextSize(100); // 텍스트 크기를 100픽셀로 설정합니다.
Typeface t; // 글꼴을 커스터마이징하기 위한 Typeface 변수를 선언합니다.
t = Typeface.DEFAULT; // 기본 글꼴로 설정합니다.
paint.setTypeface(t); // Paint 객체에 기본 글꼴을 적용합니다.
canvas.drawText("DEFAULT 폰트", 10, 200, paint); // (10, 200) 좌표에 텍스트를 그립니다.
t = Typeface.create(Typeface.SERIF, Typeface.ITALIC); // 세리프 글꼴을 이탤릭체로 생성합니다.
paint.setTypeface(t); // Paint 객체에 이탤릭체 세리프 글꼴을 적용합니다.
canvas.drawText("SERIF 폰트", 10, 300, paint); // (10, 300) 좌표에 텍스트를 그립니다.
t = Typeface.create(Typeface.SANS_SERIF, Typeface.BOLD_ITALIC); // 산세리프 글꼴을 볼드 이탤릭체로 생성합니다.
paint.setTypeface(t); // Paint 객체에 볼드 이탤릭체 산세리프 글꼴을 적용합니다.
canvas.drawText("SANS_SERIF 폰트", 10, 400, paint); // (10, 400) 좌표에 텍스트를 그립니다.
}
}
}