woong's
Android SurfaceView draw block 하기 본문
Android SurfaceView draw block 하기
안녕하세요 SurfaceView 를 사용하다 보면 메모리 사용량이 엄청 납니다.
그림을 그리고 지우고 그리고 계속 반복하니 메모리가 사용량이 적다면 이상하겠죠.
이것을 어느 정도 효율성 있게 해줄 수 있는 방법이 있습니다 .
SurfaceView 를 통해서 정적인 화면을 만든다 ? 그럼 그냥 지우고 다시 안 그리면 됩니다 .
하지만 SurfaceView 를 사용하는 목적은 열에 아홉은 동적인 화면이라고 생각 합니다.
동적인 경우
1 2 3 4 | if(block == 0){ block++; isDirty = false; } |
Thread 를 통해서 draw 가 계속해서 불리고 있는 상황 가정 입니다.
draw 메서트에서 그림을 한번 다 그리고 마지막에 block 변수 를 통해서 그림 그리는 것을 막아줍니다 .
손가락이 닿았을 때
1 2 3 4 | case MotionEvent.ACTION_DOWN: isDirty = true; break; |
손가락이 떨어졌을 때
1 2 3 4 | case MotionEvent.ACTION_UP: isDirty = false; break; |
위와 같이 손가락이 닿았을 때 ,손가락이 떨어졌을 때 상태를 바꾸면
손가락이 닿았을 때는 ondraw 를 하고
손가락이 떨어졌을 때 ondraw 를 한번만 하고 그림을 안 그리는 것을 볼 수 있습니다.
이렇게 해서 비용을 최소화 할 수 있습니다.
'Develop > Android' 카테고리의 다른 글
Android 내장 Music 불러오기 (1) | 2016.02.14 |
---|---|
Android Service 사용 하기 (0) | 2016.02.14 |
Android SurfaceView 배경 투명 처리 (0) | 2016.02.14 |
Android Application Version 불러오기 (0) | 2016.02.14 |
Android 한글 데이터 전송시 깨짐 방지 하기 (0) | 2016.02.14 |
Comments