如果下面有很多子View,繪製的時候,需要開啓其子View的繪製緩存功能,從而提高繪製效率。
public void setChildrenDrawingCacheEnabled(boolean enabled) {
final int count = getChildCount();
for (int i = 0; i < count; i++) {
final View view = getChildAt(i);
view.setDrawingCacheEnabled(true);
// Update the drawing caches
view.buildDrawingCache(true);
}
}
另一方面也可以通過setDrawingCacheQuality(low)將緩存質量降低,減少內存。
最後結束的時候,需要通過以下代碼來清空繪製緩存。
void clearChildrenCache() {
final int count = getChildCount();
for (int i = 0; i < count; i++) {
final MyLayout layout = (MyLayout) getChildAt(i);
layout.setChildrenDrawnWithCacheEnabled(false);
}
}