From c4d8eb6fb7c88c5c4da38b0b113c24cc4b78c0b7 Mon Sep 17 00:00:00 2001 From: Romain Guy Date: Wed, 18 Aug 2010 20:48:33 -0700 Subject: Speedup TextView fades (no more layers required.) Also fixes a crash in the drop shadows cache and improves drop shadows caching. Change-Id: I9c0208a49467f9201d786ae0c129194b8d423923 --- core/java/android/text/Layout.java | 2 +- core/java/android/widget/TextView.java | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) (limited to 'core/java') diff --git a/core/java/android/text/Layout.java b/core/java/android/text/Layout.java index 0466c69..54ac906 100644 --- a/core/java/android/text/Layout.java +++ b/core/java/android/text/Layout.java @@ -1729,7 +1729,7 @@ public abstract class Layout { private Alignment mAlignment = Alignment.ALIGN_NORMAL; private float mSpacingMult; private float mSpacingAdd; - private static Rect sTempRect = new Rect(); + private static final Rect sTempRect = new Rect(); private boolean mSpannedText; public static final int DIR_LEFT_TO_RIGHT = 1; diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java index c13ed15..0510701 100644 --- a/core/java/android/widget/TextView.java +++ b/core/java/android/widget/TextView.java @@ -197,6 +197,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener private static final int PRIORITY = 100; + private int mCurrentAlpha = 255; private ColorStateList mTextColor; private int mCurTextColor; private ColorStateList mHintTextColor; @@ -3857,6 +3858,22 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } @Override + protected boolean onSetAlpha(int alpha) { + if (mMovement == null && getBackground() == null) { + mCurrentAlpha = alpha; + final Drawables dr = mDrawables; + if (dr != null) { + if (dr.mDrawableLeft != null) dr.mDrawableLeft.setAlpha(alpha); + if (dr.mDrawableTop != null) dr.mDrawableTop.setAlpha(alpha); + if (dr.mDrawableRight != null) dr.mDrawableRight.setAlpha(alpha); + if (dr.mDrawableBottom != null) dr.mDrawableBottom.setAlpha(alpha); + } + return true; + } + return false; + } + + @Override protected void onDraw(Canvas canvas) { restartMarqueeIfNeeded(); @@ -3953,6 +3970,7 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener } mTextPaint.setColor(color); + mTextPaint.setAlpha(mCurrentAlpha); mTextPaint.drawableState = getDrawableState(); canvas.save(); -- cgit v1.1