diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java
index a621771..cfeced2 100644
--- a/src/com/android/launcher3/WidgetPreviewLoader.java
+++ b/src/com/android/launcher3/WidgetPreviewLoader.java
@@ -586,26 +586,26 @@
         protected Bitmap doInBackground(Void... params) {
             Bitmap unusedBitmap = null;
 
+            // If already cancelled before this gets to run in the background, then return early
+            if (isCancelled()) {
+                return null;
+            }
             synchronized (mUnusedBitmaps) {
-                // If already cancelled before this gets to run in the background, then return early
-                if (isCancelled()) {
-                    return null;
-                }
-                // Check if we can use a bitmap
+                // Check if we can re-use a bitmap
                 for (Bitmap candidate : mUnusedBitmaps) {
                     if (candidate != null && candidate.isMutable() &&
                             candidate.getWidth() == mPreviewWidth &&
                             candidate.getHeight() == mPreviewHeight) {
                         unusedBitmap = candidate;
+                        mUnusedBitmaps.remove(unusedBitmap);
                         break;
                     }
                 }
+            }
 
-                if (unusedBitmap == null) {
-                    unusedBitmap = Bitmap.createBitmap(mPreviewWidth, mPreviewHeight, Config.ARGB_8888);
-                } else {
-                    mUnusedBitmaps.remove(unusedBitmap);
-                }
+            // creating a bitmap is expensive. Do not do this inside synchronized block.
+            if (unusedBitmap == null) {
+                unusedBitmap = Bitmap.createBitmap(mPreviewWidth, mPreviewHeight, Config.ARGB_8888);
             }
             // If cancelled now, don't bother reading the preview from the DB
             if (isCancelled()) {
diff --git a/src/com/android/launcher3/widget/WidgetCell.java b/src/com/android/launcher3/widget/WidgetCell.java
index 2714f51..7496ea2 100644
--- a/src/com/android/launcher3/widget/WidgetCell.java
+++ b/src/com/android/launcher3/widget/WidgetCell.java
@@ -26,6 +26,7 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.View.OnLayoutChangeListener;
+import android.view.ViewPropertyAnimator;
 import android.widget.LinearLayout;
 import android.widget.TextView;
 
@@ -175,7 +176,8 @@
         if (bitmap != null) {
             mWidgetImage.setBitmap(bitmap);
             mWidgetImage.setAlpha(0f);
-            mWidgetImage.animate().alpha(1.0f).setDuration(FADE_IN_DURATION_MS);
+            ViewPropertyAnimator anim = mWidgetImage.animate();
+            anim.alpha(1.0f).setDuration(FADE_IN_DURATION_MS);
         }
     }
 
diff --git a/src/com/android/launcher3/widget/WidgetImageView.java b/src/com/android/launcher3/widget/WidgetImageView.java
index 6f8fd89..b0fbe1e 100644
--- a/src/com/android/launcher3/widget/WidgetImageView.java
+++ b/src/com/android/launcher3/widget/WidgetImageView.java
@@ -64,6 +64,14 @@
         }
     }
 
+    /**
+     * Prevents the inefficient alpha view rendering.
+     */
+    @Override
+    public boolean hasOverlappingRendering() {
+        return false;
+    }
+
     private void updateDstRectF() {
         if (mBitmap.getWidth() > getWidth()) {
             float scale = ((float) getWidth()) / mBitmap.getWidth();
