diff options
author | Winson Chung <winsonc@google.com> | 2012-09-10 12:46:30 -0700 |
---|---|---|
committer | Winson Chung <winsonc@google.com> | 2012-09-10 12:48:24 -0700 |
commit | 4cc332ac43dda54fb1b9fef35412313aa1ef9ad9 (patch) | |
tree | 959c952c01b60e32e5f39855085f2dfa084a9033 /src | |
parent | 061e9008b04667d58c58036f764c35f5b9a0edad (diff) | |
download | android_packages_apps_Trebuchet-4cc332ac43dda54fb1b9fef35412313aa1ef9ad9.tar.gz android_packages_apps_Trebuchet-4cc332ac43dda54fb1b9fef35412313aa1ef9ad9.tar.bz2 android_packages_apps_Trebuchet-4cc332ac43dda54fb1b9fef35412313aa1ef9ad9.zip |
Workaround for generating QSB icon press states. (Bug 7132477)
Change-Id: I7754bbb20572908cd428c12ba84a7b1160063bcb
Diffstat (limited to 'src')
-rw-r--r-- | src/com/android/launcher2/HolographicViewHelper.java | 31 |
1 files changed, 24 insertions, 7 deletions
diff --git a/src/com/android/launcher2/HolographicViewHelper.java b/src/com/android/launcher2/HolographicViewHelper.java index fd499082f..0e798da87 100644 --- a/src/com/android/launcher2/HolographicViewHelper.java +++ b/src/com/android/launcher2/HolographicViewHelper.java @@ -42,13 +42,15 @@ public class HolographicViewHelper { void generatePressedFocusedStates(ImageView v) { if (!mStatesUpdated && v != null) { mStatesUpdated = true; + Bitmap original = createOriginalImage(v, mTempCanvas); Bitmap outline = createPressImage(v, mTempCanvas); - FastBitmapDrawable d = new FastBitmapDrawable(outline); + FastBitmapDrawable originalD = new FastBitmapDrawable(original); + FastBitmapDrawable outlineD = new FastBitmapDrawable(outline); StateListDrawable states = new StateListDrawable(); - states.addState(new int[] {android.R.attr.state_pressed}, d); - states.addState(new int[] {android.R.attr.state_focused}, d); - states.addState(new int[] {}, v.getDrawable()); + states.addState(new int[] {android.R.attr.state_pressed}, outlineD); + states.addState(new int[] {android.R.attr.state_focused}, outlineD); + states.addState(new int[] {}, originalD); v.setImageDrawable(states); } } @@ -64,17 +66,32 @@ public class HolographicViewHelper { } /** + * Creates a copy of the original image. + */ + private Bitmap createOriginalImage(ImageView v, Canvas canvas) { + final Bitmap b = Bitmap.createBitmap( + v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); + + canvas.setBitmap(b); + canvas.save(); + v.draw(canvas); + canvas.restore(); + canvas.setBitmap(null); + + return b; + } + + /** * Creates a new press state image which is the old image with a blue overlay. * Responsibility for the bitmap is transferred to the caller. */ private Bitmap createPressImage(ImageView v, Canvas canvas) { - final int padding = HolographicOutlineHelper.MAX_OUTER_BLUR_RADIUS; final Bitmap b = Bitmap.createBitmap( - v.getWidth() + padding, v.getHeight() + padding, Bitmap.Config.ARGB_8888); + v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); canvas.setBitmap(b); canvas.save(); - v.getDrawable().draw(canvas); + v.draw(canvas); canvas.restore(); canvas.drawColor(mHighlightColor, PorterDuff.Mode.SRC_IN); canvas.setBitmap(null); |