From 2eb49ff2a3f7066cae1768d2314c4f912bd6c28d Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Mon, 1 Jun 2009 14:54:59 -0700 Subject: [PATCH] Fixes #1889268. Dragging an icon out of a folder was showing a gray background. This was due to the icon's drawing cache background color. This fix simply temporarily resets that color when capturing the view into a Bitmap. --- src/com/android/launcher/DragLayer.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/com/android/launcher/DragLayer.java b/src/com/android/launcher/DragLayer.java index b5b84b8..2e59b10 100644 --- a/src/com/android/launcher/DragLayer.java +++ b/src/com/android/launcher/DragLayer.java @@ -195,8 +195,13 @@ public class DragLayer extends FrameLayout implements DragController { boolean willNotCache = v.willNotCacheDrawing(); v.setWillNotCacheDrawing(false); - v.buildDrawingCache(); + // Reset the drawing cache background color to fully transparent + // for the duration of this operation + int color = v.getDrawingCacheBackgroundColor(); + v.setDrawingCacheBackgroundColor(0); + + v.buildDrawingCache(); Bitmap viewBitmap = v.getDrawingCache(); int width = viewBitmap.getWidth(); int height = viewBitmap.getHeight(); @@ -218,6 +223,7 @@ public class DragLayer extends FrameLayout implements DragController { mDragBitmap = Bitmap.createBitmap(viewBitmap, 0, 0, width, height, scale, true); v.destroyDrawingCache(); v.setWillNotCacheDrawing(willNotCache); + v.setDrawingCacheBackgroundColor(color); final Bitmap dragBitmap = mDragBitmap; mBitmapOffsetX = (dragBitmap.getWidth() - width) / 2; -- 2.11.0