Make all drawing happens in background.

Also move more rendering code to SlotRenderers (AlbumSetView and AlbumView).

Change-Id: I1d678711bfd3655a48bb4b99d8ca175e088bdffb
diff --git a/src/com/android/gallery3d/ui/SlotView.java b/src/com/android/gallery3d/ui/SlotView.java
index e12bb08..aef97a4 100644
--- a/src/com/android/gallery3d/ui/SlotView.java
+++ b/src/com/android/gallery3d/ui/SlotView.java
@@ -55,6 +55,7 @@
     public static interface SlotRenderer {
         public void prepareDrawing();
         public void onVisibleRangeChanged(int visibleStart, int visibleEnd);
+        public void onSlotSizeChanged(int width, int height);
         public int renderSlot(GLCanvas canvas, int index, int pass, int width, int height);
     }
 
@@ -94,6 +95,7 @@
     public void setSlotRenderer(SlotRenderer slotDrawer) {
         mRenderer = slotDrawer;
         if (mRenderer != null) {
+            mRenderer.onSlotSizeChanged(mLayout.mSlotWidth, mLayout.mSlotHeight);
             mRenderer.onVisibleRangeChanged(getVisibleStart(), getVisibleEnd());
         }
     }
@@ -512,6 +514,10 @@
                 mSlotWidth = mSlotHeight;
             }
 
+            if (mRenderer != null) {
+                mRenderer.onSlotSizeChanged(mSlotWidth, mSlotHeight);
+            }
+
             int[] padding = new int[2];
             if (WIDE) {
                 initLayoutParameters(mWidth, mHeight, mSlotWidth, mSlotHeight, padding);