summaryrefslogtreecommitdiffstats
path: root/core/java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@google.com>2010-08-18 20:48:33 -0700
committerRomain Guy <romainguy@google.com>2010-08-18 20:48:33 -0700
commitc4d8eb6fb7c88c5c4da38b0b113c24cc4b78c0b7 (patch)
tree0cb414e9157cef012ae08395a3cd052a2c5384bc /core/java
parent1b196022ece4305f7619a41a84fe49f792dfb1bc (diff)
downloadframeworks_base-c4d8eb6fb7c88c5c4da38b0b113c24cc4b78c0b7.zip
frameworks_base-c4d8eb6fb7c88c5c4da38b0b113c24cc4b78c0b7.tar.gz
frameworks_base-c4d8eb6fb7c88c5c4da38b0b113c24cc4b78c0b7.tar.bz2
Speedup TextView fades (no more layers required.)
Also fixes a crash in the drop shadows cache and improves drop shadows caching. Change-Id: I9c0208a49467f9201d786ae0c129194b8d423923
Diffstat (limited to 'core/java')
-rw-r--r--core/java/android/text/Layout.java2
-rw-r--r--core/java/android/widget/TextView.java18
2 files changed, 19 insertions, 1 deletions
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();