2013-10-17 2 views
1

표현식을 표시하는 사용자 정의보기를 디자인하고 있습니다 (복잡한 TextView로 생각할 수 있습니다).Android - 사용자 정의보기 및 캔버스 크기 - 닭고기 및 계란 prob

표현식이 커짐에 따라 커스텀 뷰를 확장하여 (wrap_content TextView처럼) 확장하려고합니다.

하면보기의 내용은 내가 어떤 폭을 알고 나중에 만이 과정의 끝에서 버퍼링이

Bitmap canvasBitmap = Bitmap.createBitmap(width, height , Config.RGB); 
Canvas canvas = new Canvas(canvasBitmap); 
canvas.drawText(pos,text, paint); 
pos += paint.MesureText(text); 
// and so on... 
... 
... 

를 사용하여 수행됩니다 onDraw()

에 의해 그려진 캔버스 버퍼 변경 될 때 캔버스가 정말 필요합니다 - pos의 값이지만, 계산하기 전에 Bitmap.createBitmap()에 필요합니다. 경계가없는 상태에서 캔버스를 작성한 다음 올바른 크기로 잘라낼 수 있습니까? 나는 필요한 너비를 알아 내기 위해 먼저 프로세스를 수행하고 싶지 않고 올바른 크기로보기를 만들기 위해 다시 실행해야합니다.

의견을 보내 주시면 감사하겠습니다.

답변

1

ViewsonSizeChanged 콜백을 사용하여 버퍼를 만들고 채 웁니다.

데이터를 열심히 버퍼링하고보기가 적절한 크기 일 때에 만 데이터를 버퍼링하는 것 간의 균형을 잘 맞 춥니 다.

관련 문제