마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

drawerLayout을 사용할 때 백그라운드 canvas의 onDraw() 자동으로 실행하는 문제에 관해..

0 추천
메인 화면에 canvas로 그림을 그려주는 customView가 있을때 openDrawer혹은 드래그로 사이드 actionBar를 불러올 시 customView의 onDraw를 항상 호출하는군요..

 

문제가 onDraw()에서 많은 연산을 수행하게 만들 경우 actionBar의 애니메이션이 뚝뚝 끊기게 됩니다.

거의 actionbar가 움직이는 매 프레임마다 onDraw()를 실행하는걸로 보이더군요.

 

사이드 actionBar를 불러올 때 백그라운드에 있는 customView의 onDraw()를 호출하지 않도록 만드는 방법이 없을까요?
zent (1,360 포인트) 님이 2014년 5월 14일 질문

1개의 답변

0 추천
customView의 보여지는 영역이 변하니 onDraw를 호출하는 겁니다.

drawerLayout에 리스너를 달아서 drawer가 나오는 동안에는 onDraw() 함수안에서 복잡한 작업을 하지 않게 바꾸세요.

간단하게 하려면 customView를 안보이게 설정하면 됩니다.
익명사용자 님이 2014년 5월 14일 답변
답변 감사드립니다 ㅠㅠ

문제가 customView의 onDraw()에서 복잡한 내용을 그리고 있기 때문에 작업의 일부만 하도록 만들기도 힘든 상황이라 ㅠ

onDraw()를 부르지 않아도 canvas를 백지상태로 만드는 작업은 수행하던데 초기화 자체를 하지 않도록 만드는 방법은 없는건가요?
...