diff options
author | Fabrice Di Meglio <fdimeglio@google.com> | 2011-09-29 12:44:16 -0700 |
---|---|---|
committer | Fabrice Di Meglio <fdimeglio@google.com> | 2011-09-29 12:44:16 -0700 |
commit | a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7 (patch) | |
tree | e8bb0c98b72a6ce60020b962f0f918368a645df8 /core/java/android/text | |
parent | d4ad7b49848371f71696ffd8bb12d19512926652 (diff) | |
download | frameworks_base-a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7.zip frameworks_base-a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7.tar.gz frameworks_base-a130e5f59dc6b2117e4c1a8ffef54828e9ea44c7.tar.bz2 |
Fix bug #5387832 [UI/Visual] Address of the website is not displayed properly(second line of the address is partly shown)
- make DynamicLayout honor max lines
- make StaticLayout.generate() take maxLines as a parameter instead of using the field mMaximumVisibleLineCount
Change-Id: I9eafb1be4b8bb2aa881514955a6903f559cb6a1e
Diffstat (limited to 'core/java/android/text')
-rw-r--r-- | core/java/android/text/DynamicLayout.java | 10 | ||||
-rw-r--r-- | core/java/android/text/StaticLayout.java | 10 |
2 files changed, 12 insertions, 8 deletions
diff --git a/core/java/android/text/DynamicLayout.java b/core/java/android/text/DynamicLayout.java index f82c9c4..c3a2308 100644 --- a/core/java/android/text/DynamicLayout.java +++ b/core/java/android/text/DynamicLayout.java @@ -76,7 +76,7 @@ extends Layout boolean includepad, TextUtils.TruncateAt ellipsize, int ellipsizedWidth) { this(base, display, paint, width, align, TextDirectionHeuristics.FIRSTSTRONG_LTR, - spacingmult, spacingadd, includepad, ellipsize, ellipsizedWidth); + spacingmult, spacingadd, includepad, ellipsize, ellipsizedWidth, Integer.MAX_VALUE); } /** @@ -93,7 +93,7 @@ extends Layout int width, Alignment align, TextDirectionHeuristic textDir, float spacingmult, float spacingadd, boolean includepad, - TextUtils.TruncateAt ellipsize, int ellipsizedWidth) { + TextUtils.TruncateAt ellipsize, int ellipsizedWidth, int maxLines) { super((ellipsize == null) ? display : (display instanceof Spanned) @@ -135,6 +135,8 @@ extends Layout mEllipsize = true; } + mMaxLines = maxLines; + // Initial state is a single line with 0 characters (0 to 0), // with top at 0 and bottom at whatever is natural, and // undefined ellipsis. @@ -283,7 +285,7 @@ extends Layout reflowed.generate(text, where, where + after, getPaint(), getWidth(), getAlignment(), getTextDirectionHeuristic(), getSpacingMultiplier(), getSpacingAdd(), - false, true, mEllipsizedWidth, mEllipsizeAt); + false, true, mEllipsizedWidth, mEllipsizeAt, mMaxLines); int n = reflowed.getLineCount(); // If the new layout has a blank line at the end, but it is not @@ -488,6 +490,8 @@ extends Layout private int mTopPadding, mBottomPadding; + private int mMaxLines; + private static StaticLayout sStaticLayout = new StaticLayout(null); private static final Object[] sLock = new Object[0]; diff --git a/core/java/android/text/StaticLayout.java b/core/java/android/text/StaticLayout.java index 583cbe6..7c27396 100644 --- a/core/java/android/text/StaticLayout.java +++ b/core/java/android/text/StaticLayout.java @@ -139,7 +139,7 @@ public class StaticLayout extends Layout { generate(source, bufstart, bufend, paint, outerwidth, align, textDir, spacingmult, spacingadd, includepad, includepad, - ellipsizedWidth, ellipsize); + ellipsizedWidth, ellipsize, mMaximumVisibleLineCount); mMeasured = MeasuredText.recycle(mMeasured); mFontMetricsInt = null; @@ -160,7 +160,7 @@ public class StaticLayout extends Layout { Alignment align, TextDirectionHeuristic textDir, float spacingmult, float spacingadd, boolean includepad, boolean trackpad, - float ellipsizedWidth, TextUtils.TruncateAt ellipsize) { + float ellipsizedWidth, TextUtils.TruncateAt ellipsize, int maxLines) { mLineCount = 0; int v = 0; @@ -477,13 +477,13 @@ public class StaticLayout extends Layout { width = restWidth; } } - if (mLineCount >= mMaximumVisibleLineCount) { + if (mLineCount >= maxLines) { break; } } } - if (paraEnd != here && mLineCount < mMaximumVisibleLineCount) { + if (paraEnd != here && mLineCount < maxLines) { if ((fitTop | fitBottom | fitDescent | fitAscent) == 0) { paint.getFontMetricsInt(fm); @@ -514,7 +514,7 @@ public class StaticLayout extends Layout { } if ((bufEnd == bufStart || source.charAt(bufEnd - 1) == CHAR_NEW_LINE) && - mLineCount < mMaximumVisibleLineCount) { + mLineCount < maxLines) { // Log.e("text", "output last " + bufEnd); paint.getFontMetricsInt(fm); |