336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
항상 drawLine이나 drawCircle같은 함수를 매번 추가해야 할 경우,
혹시 For문으로 돌리고 계시지는 않는 지요?
그럼 시스템적으로 부화도 많이 생기고, 느려지는 것을 느낄 수 있습니다.
Canvas 자체적으로 다시 초기화를 하지 않고,겹쳐서 그릴 경우에는
그대로 계속 그리면 되지만, 다시 깨끗하게 화면을 초기화 하고
다시 출력할려고 하면 다시 그 수만큼 사용을 해야하죠.
위와 같은 코드로는 drawLine을 100번 출력하게 되는 대박 코딩이 되는 거죠-0-;;
그래서 지금까지 그린 것을 Bitmap에 저장시켜 놓은 후, 그것을 다시 호출해서 사용하면
drawBitmap함수를 한번만 부르게 되니, 부화도 없고 좀 더 코딩을 쉽게 할 수 있습니다.
1. 빈 Bitmap을 만든다. (Bitmap의 종류 참조)
위와 같이 아무것도 그려지지 않은 Bitmap에서 생성된 Canvas를 가지고 그리는 거지요.
좋은 참조가 되었으면 좋겠습니다 ㅎ
혹시 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
출처: http://anddev.tistory.com/12
위와 같이 아무것도 그려지지 않은 Bitmap에서 생성된 Canvas를 가지고 그리는 거지요.
좋은 참조가 되었으면 좋겠습니다 ㅎ
'나의 플랫폼 > 안드로이드' 카테고리의 다른 글
[Android] java.lang.OutOfMemoryError: bitmap size exceeds VM budget (8) | 2011.04.20 |
---|---|
[Android] BitmapFactory에 문제점 (2) | 2011.04.19 |
[Android] RGB 색깔 테이블 (0) | 2011.04.19 |
[Android] HeapSize확인! (0) | 2011.04.12 |
[Android] Bitmap을 확장 축소할 경우 (1) | 2011.04.12 |