728x90
안드로이드 스튜디오에서 간단하게 도형을 그리는 Java 코드입니다.
아래 이미지와 같은 도형을 그리게 됩니다.
# MainActivity.java
package com.siku.paint;
import androidx.appcompat.app.AppCompatActivity;
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.graphics.RectF;
import android.os.Bundle;
import android.view.View;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// activity_main.xml이 아닌 재정의한 클래스를 화면에 보여줍니다.
setContentView(new MyGraphicView(this));
}
// View 클래스를 상속받아 재정의한 클래스
private static class MyGraphicView extends View {
public MyGraphicView(Context context){
super(context);
}
@Override
// 클래스가 생성되면 호출되는 함수
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
// (1) paint를 설정하고
paint.setAntiAlias(true);
paint.setColor(Color.GREEN);
// (2) canvas에 그립니다.
canvas.drawLine(10,10,300,10,paint);
// (1) paint의 색깔을 파란색으로 설정
paint.setColor(Color.BLUE);
// (2) paint의 두깨를 5 로 설정
paint.setStrokeWidth(5);
// (3) canvas에 직선을 그립니다.
// x 10, y 30 에서 x 300, y 30 좌표를 잇는 직선을 paint로 그립니다.
canvas.drawLine(10,30,300,30,paint);
paint.setColor(Color.RED);
paint.setStrokeWidth(0);
// paint의 스타일을 채움으로 설정
paint.setStyle(Paint.Style.FILL);
// 직사각형을 설정합니다.
// 왼쪽 위 꼭지점이 x 10, y 50. 오른쪽 아래 꼭지점이 x 110, y 150에 위치합니다.
Rect rect1 = new Rect(10, 50, 10+100, 50+100);
// rect1 위치에 paint로 직사각형을 그립니다.
canvas.drawRect(rect1, paint);
paint.setStyle(Paint.Style.STROKE);
Rect rect2 = new Rect(130, 50, 130+100, 50+100);
canvas.drawRect(rect2, paint);
// 모서리가 라운드처리된 직사각형을 그립니다.
RectF rect3 = new RectF(250, 50, 250+100, 50+100);
// 앞의 20은 가로선의 양끝에서 라운드처리가 되는 길이
// 뒤에 20은 세로선의 양끝에서 라운드처리가 되는 길이입니다.
canvas.drawRoundRect(rect3, 20, 20, paint);
// 원을 그립니다.
// 원의 중심점이 x 60, y 220에 위치하고 반지름 50으로 그립니다.
canvas.drawCircle(60, 220, 50, paint);
paint.setStrokeWidth(5);
// 경로를 설정할 수 있습니다.
Path path1 = new Path();
// 시작지점 설정 후
path1.moveTo(10, 290);
// 반복해서 다음 지점을 추가할 수 있습니다.
path1.lineTo(10+50, 290+50);
path1.lineTo(10+100, 290);
path1.lineTo(10+150, 290+50);
path1.lineTo(10+200, 290);
// 설정된 경로를 따라 직선을 그립니다.
canvas.drawPath(path1, paint);
paint.setStrokeWidth(0);
paint.setTextSize(50);
// 문자열을 그릴 수도 있습니다.
canvas.drawText("캔버스와 페인트", 10, 390, paint);
}
}
}
728x90
'안드로이드' 카테고리의 다른 글
[안드로이드] 간단한 포토샵 앱 만들기 (0) | 2022.11.30 |
---|---|
[안드로이드] 간단한 터치로 도형그리는 방법 (0) | 2022.11.28 |
[안드로이드] 간단한 이미지뷰어 / SD카드에서 이미지 파일 읽기 (0) | 2022.11.24 |
[안드로이드] Raw 폴더에서 txt 파일 읽어오기 java 소스코드 (0) | 2022.11.24 |
[안드로이드] 간단한 메뉴버튼 만들기 (0) | 2022.11.22 |