본문 바로가기

IT/Android

[안드로이드] Canvas와 Bitmap 그리기

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.

사실 Canvas나 Bitmap은 안드로이드 공부를 하면서 제대로 본 적이 없어서...

이런 내용이 나올때는 그냥 지나쳤는데.. 이제는 한번쯤 봐둬야 할 거 같아서

소스로 구현하고 주석으로 설명을 달았습니다.

필요하신 분은 참고 하시면 됩니다.


package com.example.ericu.canvastest;

import android.content.Context;
import android.content.res.Resources;
import android.graphics.Bitmap;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.BitmapDrawable;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;

public class MainActivity extends AppCompatActivity {

protected class MyView extends View {
public MyView(Context context){
super(context);
}

// View의 onDraw()메소드가 자동으로 호출됨
public void onDraw(Canvas canvas){

// Canvas는 View위에 그림을 그릴 수 있는 도화지
// Paint 객체로 그림을 그린다.
Paint paint = new Paint();

canvas.drawColor(Color.BLACK); // Canvas(도화지)의 색 설정
canvas.drawPoint(10,10,paint); // Canvas 위치 지정

paint.setColor(Color.BLUE);
canvas.drawLine(20,10,200,50,paint); // 선 그리기

// Bitmap 사용(비트맵은 고화질 그림을 load할 때 쓰인다)
// Bitmap 은 덩치가 큰 데이터 이므로, onCreate에서 미리 읽어두면 좋다.
Resources r = getResources();
BitmapDrawable bitmapDrawable = (BitmapDrawable)r.getDrawable(R.drawable.plane);
Bitmap bitmap = bitmapDrawable.getBitmap();

canvas.drawBitmap(bitmap,50,50,null);

}
}

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);


MyView myView = new MyView(this);
setContentView(myView);

}
}