본문 바로가기

나의 플랫폼/안드로이드

[Android] Bitmap에 그림 그리기.

336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
 항상 drawLine이나 drawCircle같은 함수를 매번 추가해야 할 경우,
혹시 For문으로 돌리고 계시지는 않는 지요?
 
 그럼 시스템적으로 부화도 많이 생기고, 느려지는 것을 느낄 수 있습니다.
Canvas 자체적으로 다시 초기화를 하지 않고,겹쳐서 그릴 경우에는
그대로 계속 그리면 되지만, 다시 깨끗하게 화면을 초기화 하고
다시 출력할려고 하면 다시 그 수만큼 사용을 해야하죠. 

 for(int i = 0 ; i < 100 ; i++)
     c.drawLine(0,0,100,100,paint);


위와 같은 코드로는 drawLine을 100번 출력하게 되는 대박 코딩이 되는 거죠-0-;;

그래서 지금까지 그린 것을 Bitmap에 저장시켜 놓은 후, 그것을 다시 호출해서 사용하면
drawBitmap함수를 한번만 부르게 되니, 부화도 없고 좀 더 코딩을 쉽게 할 수 있습니다.

 @Override protected void onDraw(Canvas canvas) {

            canvas.drawColor(Color.WHITE);

            

            Bitmap bm = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);

            Canvas c = new Canvas(bm);


            c.drawLine(10, 10, 100, 100, new Paint());


            canvas.drawBitmap(bm, 10, 10, new Paint());

 }


1. 빈 Bitmap을 만든다. (Bitmap의 종류 참조)
2. Bitmap을 인자로 Canvas를 생성한다.
3. 생성된 Canvas를 이용하여 그림을 그린다.
4. Bitmap을 Canvas에 그린다.

출처: 
http://anddev.tistory.com/12


위와 같이 아무것도 그려지지 않은 Bitmap에서 생성된 Canvas를 가지고 그리는 거지요.

좋은 참조가 되었으면 좋겠습니다 ㅎ