From affd7b4d23cecb4ed74133dd8bd9a5ede099c562 Mon Sep 17 00:00:00 2001 From: Winson Chung Date: Fri, 20 Aug 2010 15:11:56 -0700 Subject: [PATCH] Fixing alpha issue on AllApps. Change-Id: Ifbd81b3e8009cff963bb03bd953e498f8677cc38 --- src/com/android/launcher2/BubbleTextView.java | 6 ++++ src/com/android/launcher2/PagedView.java | 3 +- .../launcher2/PagedViewCellLayout.java | 4 +-- src/com/android/launcher2/PagedViewIcon.java | 28 ++++--------------- 4 files changed, 15 insertions(+), 26 deletions(-) diff --git a/src/com/android/launcher2/BubbleTextView.java b/src/com/android/launcher2/BubbleTextView.java index 4a56e1bb0d..076f574ded 100644 --- a/src/com/android/launcher2/BubbleTextView.java +++ b/src/com/android/launcher2/BubbleTextView.java @@ -144,4 +144,10 @@ public class BubbleTextView extends TextView { super.onDetachedFromWindow(); mBackground.setCallback(null); } + + @Override + protected boolean onSetAlpha(int alpha) { + mPaint.setAlpha(alpha); + return super.onSetAlpha(alpha); + } } diff --git a/src/com/android/launcher2/PagedView.java b/src/com/android/launcher2/PagedView.java index 03a4d0c03b..16116ceafb 100644 --- a/src/com/android/launcher2/PagedView.java +++ b/src/com/android/launcher2/PagedView.java @@ -271,8 +271,9 @@ public abstract class PagedView extends ViewGroup { dimAlpha = Math.max(0.0f, Math.min(1.0f, (dimAlpha * dimAlpha))); alpha = 1.0f - dimAlpha; } - if (Float.compare(alpha, layout.getAlpha()) != 0) + if (Float.compare(alpha, layout.getAlpha()) != 0) { layout.setAlpha(alpha); + } } } super.dispatchDraw(canvas); diff --git a/src/com/android/launcher2/PagedViewCellLayout.java b/src/com/android/launcher2/PagedViewCellLayout.java index 24139966a2..219a362047 100644 --- a/src/com/android/launcher2/PagedViewCellLayout.java +++ b/src/com/android/launcher2/PagedViewCellLayout.java @@ -75,9 +75,9 @@ public class PagedViewCellLayout extends ViewGroup { @Override public void setAlpha(float alpha) { - super.setAlpha(alpha); - setChildrenAlpha(alpha); mHolographicAlpha = 1.0f - alpha; + setChildrenAlpha(alpha); + super.setAlpha(alpha); } @Override diff --git a/src/com/android/launcher2/PagedViewIcon.java b/src/com/android/launcher2/PagedViewIcon.java index ea5e6d7010..01f36dcc52 100644 --- a/src/com/android/launcher2/PagedViewIcon.java +++ b/src/com/android/launcher2/PagedViewIcon.java @@ -170,17 +170,9 @@ public class PagedViewIcon extends TextView implements Checkable { @Override public void setAlpha(float alpha) { final float viewAlpha = sHolographicOutlineHelper.viewAlphaInterpolator(alpha); - mAlpha = (int) (viewAlpha * 255); final float holographicAlpha = sHolographicOutlineHelper.highlightAlphaInterpolator(alpha); + mAlpha = (int) (viewAlpha * 255); mHolographicAlpha = (int) (holographicAlpha * 255); - - // WORKAROUND: until TextView handles canvas shadow layer alpha itself - int sRed = Color.red(mShadowColor); - int sGreen = Color.green(mShadowColor); - int sBlue = Color.blue(mShadowColor); - super.setShadowLayer(mShadowRadius, mShadowDx, mShadowDy, Color.argb(mAlpha, sRed, sGreen, - sBlue)); - super.setAlpha(viewAlpha); } @@ -227,27 +219,17 @@ public class PagedViewIcon extends TextView implements Checkable { } } - // WORKAROUND: until TextView handles canvas shadow layer alpha itself - float mShadowRadius, mShadowDx, mShadowDy; - int mShadowColor; - @Override - public void setShadowLayer(float radius, float dx, float dy, int color) { - mShadowRadius = radius; - mShadowDx = dx; - mShadowDy = dy; - mShadowColor = color; - super.setShadowLayer(radius, dx, dy, color); - } - @Override protected void onDraw(Canvas canvas) { + // draw the view itself if (mIsHolographicUpdatePass) { // only clip to the text view (restore its alpha so that we get a proper outline) canvas.save(); canvas.clipRect(mDrawableClipRect, Op.REPLACE); - super.onSetAlpha(255); + final float alpha = getAlpha(); + super.setAlpha(1.0f); super.onDraw(canvas); - super.onSetAlpha(mAlpha); + super.setAlpha(alpha); canvas.restore(); } else { if (mAlpha > 0) {