summaryrefslogtreecommitdiffstats
path: root/core/java/android/widget/TextView.java
diff options
context:
space:
mode:
authorRomain Guy <romainguy@android.com>2009-05-04 14:13:32 -0700
committerRomain Guy <romainguy@android.com>2009-05-04 15:05:22 -0700
commit3373ed62d1de643d3a56e3f4ece2154efa455ecc (patch)
tree9a597b487dfc10fe1a61dd1d27ac942b03bfb2d7 /core/java/android/widget/TextView.java
parentfa3e5562793c5bd7d4513a9e1a5869e763a47ab5 (diff)
downloadframeworks_base-3373ed62d1de643d3a56e3f4ece2154efa455ecc.zip
frameworks_base-3373ed62d1de643d3a56e3f4ece2154efa455ecc.tar.gz
frameworks_base-3373ed62d1de643d3a56e3f4ece2154efa455ecc.tar.bz2
Fixes #1827988. Prevent marquee text from constantly rescaling itself in Market
Diffstat (limited to 'core/java/android/widget/TextView.java')
-rw-r--r--core/java/android/widget/TextView.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/core/java/android/widget/TextView.java b/core/java/android/widget/TextView.java
index de0c982..c6b0187 100644
--- a/core/java/android/widget/TextView.java
+++ b/core/java/android/widget/TextView.java
@@ -4837,10 +4837,11 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
}
private boolean compressText(float width) {
- if (width > 0.0f && mLayout != null && getLineCount() == 1 && !mUserSetTextScaleX) {
+ // Only compress the text if it hasn't been compressed by the previous pass
+ if (width > 0.0f && mLayout != null && getLineCount() == 1 && !mUserSetTextScaleX &&
+ mTextPaint.getTextScaleX() == 1.0f) {
final float textWidth = mLayout.getLineWidth(0);
- final float overflow = (textWidth - width) / width;
-
+ final float overflow = (textWidth + 1.0f - width) / width;
if (overflow > 0.0f && overflow <= Marquee.MARQUEE_DELTA_MAX) {
mTextPaint.setTextScaleX(1.0f - overflow - 0.005f);
post(new Runnable() {
@@ -5843,9 +5844,10 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
final int textWidth = textView.getWidth() - textView.getCompoundPaddingLeft() -
textView.getCompoundPaddingRight();
final float lineWidth = textView.mLayout.getLineWidth(0);
- mGhostStart = lineWidth - textWidth + textWidth / 3.0f;
+ final float gap = textWidth / 3.0f;
+ mGhostStart = lineWidth - textWidth + gap;
mMaxScroll = mGhostStart + textWidth;
- mGhostOffset = lineWidth + textWidth / 3.0f;
+ mGhostOffset = lineWidth + gap;
mFadeStop = lineWidth + textWidth / 6.0f;
mMaxFadeScroll = mGhostStart + lineWidth + lineWidth;