개발/책

[안드로이드 프로그래밍] 9장 직접 풀어보기 9-1

Hyunsun 2021. 11. 11. 00:00
728x90
한빛아카데미 Android Studio를 활용한 안드로이드 프로그래밍 6판

 

p.358 직접 풀어보기 9-1

 

그림과 같은 화면을 출력하도록 다음 메소드를 사용하여 Java를 코딩하라

  • Paint.setStrokeCap()
  • Canvas.drawOval()
  • Paint.setColor(Color.argb())

 

코드

MainActivity.java

package com.cookandroid.test;

import androidx.appcompat.app.AppCompatActivity;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.RectF;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(new MyGraphicView(this));
    }

    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();
            paint.setAntiAlias(true);
            paint.setStrokeWidth(50);
            canvas.drawLine(50, 50, 600, 50, paint);

            paint.setStrokeCap(Paint.Cap.ROUND);
            canvas.drawLine(50, 150, 600, 150, paint);

            RectF rectF = new RectF();
            rectF.set(100, 200, 100 + 400, 100 + 200);
            canvas.drawOval(rectF, paint);

            rectF.set(100, 300, 100 + 200, 300 + 200);
            canvas.drawArc(rectF, 40, 110, true, paint);

            paint.setColor(Color.BLUE);
            rectF.set(100, 600, 100 + 200, 600 + 200);
            canvas.drawRect(rectF, paint);

            paint.setColor(Color.argb(0x88, 0xff, 0x00, 0x00));
            rectF.set(150, 650, 150 + 200, 650 + 200);
            canvas.drawRect(rectF, paint);
        }
    }
}

 

결과

728x90