학교 공부/안드로이드 프로그래밍_코드
안드로이드 프로그래밍_직접 풀어보기 9-1 코드
_빌런
2022. 5. 3. 15:04
// JAVA Code
package com.example.example_9_1;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
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);
// setContentView(R.layout.activity_main);
setContentView(new MyGraphicView(this));
}
private static class MyGraphicView extends View {
public MyGraphicView(Context context) {
super(context);
}
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint paint = new Paint();
paint.setAntiAlias(true);
// 색상차가 뚜렷한 경계 부근에 중간색을 삽입하여 도형이나 글꼴이 주변 배경과 부드럽게 잘 어울리도록 하는 기법
// setStrokeWidth();
// drawLine을 할 때 선의 두께를 지정하는 함수, 단위는 px
/* setStrokeCap(Paint.Cap cap) - 선의 끝나는 지점의 장식을 설정합니다.
BUTT : 그 정해진 위치에서 끝납니다.
ROUND : 둥근 모양으로 끝이 장식됩니다.
SQUARE : 사각형 모양이며, 해당 좌표보다 조금더 길게 그려 집니다. */
/* void drawOval(RectF rect, Paint paint) - Oval에 내접하는 타원을 출력한다. */
/* Paint.setColor(Color.argb) - alpha는 투명값을 의미한다. a, r, g, b, */
//paint.setStyle(Paint.Style.FILL);
Rect rect1 = new Rect(100, 60, 100+600, 60+100);
canvas.drawRect(rect1, paint);
paint.setStrokeWidth(100);
paint.setStrokeCap(Paint.Cap.ROUND);
canvas.drawLine(100, 250, 100+600, 250, paint);
//paint.setStyle(Paint.Style.FILL);
RectF rect2 = new RectF(100, 350, 100+600, 350+200);
canvas.drawOval(rect2, paint);
RectF rect3 = new RectF(100, 500, 100+300, 500+300);
canvas.drawArc(rect3, 40, 105, true, paint);
Rect rect4 = new Rect(100, 850, 100+300, 850+300);
paint.setColor(Color.argb(50, 0, 0, 255));
canvas.drawRect(rect4, paint);
Rect rect5 = new Rect(200, 950, 200+300, 950+300);
paint.setColor(Color.argb(50, 255, 0, 0));
canvas.drawRect(rect5, paint);
}
}
}