2012-12-23 4 views
1

이 상황 입니다 - 여러 도면 작업과 사용자 정의보기 내 문제는 레이아웃이 스크롤되는 경우 다음 (customview.ondraw이다 레이아웃에 포함) 중입니다 - 내 루트 레이아웃이있는 ScrollView 입니다 여러 번 불렀다. ondraw()에는 많은 작업이 있으므로 성능이 저하되고 있습니다.안드로이드 사용자 정의보기는 성능

이 중에서 가장 좋은 전략은 무엇입니까?

답변

1

View.setDrawingCacheEnabled()에 대한 문서를 참조하십시오. onDraw 구현에서 getDrawingCache()를 호출하고 getDrawingCache()가 null이 아닌 값을 반환하면 반환 된 비트 맵을 그려야합니다. ScrollView가 자동으로 setDrawingCacheEnabled를 호출하는지 여부를 확신하지 못합니다. 당신은 그것을 시도하고 알아 내야 할 것입니다. 나는 생각한다. 하지만 여전히 onDraw 루틴에서 getDrawingCache()를 호출해야합니다.

하드웨어가 아닌 가속 케이스를 처리합니다.

하드웨어 가속보기의 경우 setLayerType에 대한 문서를 참조하십시오. 하드웨어 가속화 된 캐싱 캐싱이 실제로 성능 향상을 제공한다는 사실과는 거리가 멀기 때문에 조심스럽게이 작업을 수행하십시오.

+0

시도해 보겠습니다. 나는 다시 올 것이다. –

+0

setDrawingCacheEnabled()가 올바른 접근 방식입니다. http://stackoverflow.com/questions/3046766/android-drawing-cache에서 제안 된 유사 콘텐츠를 사용했습니다. 감사. setLayerType 접근 방식에 대해 –

+0

을 확인하면 http://developer.android.com/training/custom-views/optimizing-view.html을 확인할 수 있습니다. –

0

Android에서 메소드의 이름을 잊어 버렸지 만 분할 창이있는 스윙 데모가 있습니다.

깃발이 참 (연속적으로 업데이트 됨)으로 설정된 경우 분할 패널보다 침 부품을 움직입니다. 동일한 효과가 스크롤에서도 발생합니다. 스크롤이 끝난 후에 만 ​​연속적으로 그리고 다른 것을 사용할 수 있습니다. iOS에서도 마찬가지입니다.

이러한 메서드는 무엇인지 찾아서 필요할 때 사용자 지정보기 드로잉을 포함해야합니다.

관련 문제