Merge "AutoSize TextView - fix measurements" into oc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
e812e7dc2e
@@ -8148,35 +8148,29 @@ public class TextView extends View implements ViewTreeObserver.OnPreDrawListener
|
|||||||
mTempTextPaint.set(getPaint());
|
mTempTextPaint.set(getPaint());
|
||||||
mTempTextPaint.setTextSize(suggestedSizeInPx);
|
mTempTextPaint.setTextSize(suggestedSizeInPx);
|
||||||
|
|
||||||
if ((mLayout instanceof BoringLayout) && BoringLayout.isBoring(
|
final StaticLayout.Builder layoutBuilder = StaticLayout.Builder.obtain(
|
||||||
text, mTempTextPaint, getTextDirectionHeuristic(), mBoring) != null) {
|
text, 0, text.length(), mTempTextPaint,
|
||||||
return mTempTextPaint.getFontSpacing() <= availableSpace.bottom
|
getMeasuredWidth() - getTotalPaddingLeft() - getTotalPaddingRight());
|
||||||
&& mTempTextPaint.measureText(text, 0, text.length()) <= availableSpace.right;
|
|
||||||
} else {
|
|
||||||
final StaticLayout.Builder layoutBuilder = StaticLayout.Builder.obtain(
|
|
||||||
text, 0, text.length(), mTempTextPaint,
|
|
||||||
getMeasuredWidth() - getTotalPaddingLeft() - getTotalPaddingRight());
|
|
||||||
|
|
||||||
layoutBuilder.setAlignment(getLayoutAlignment())
|
layoutBuilder.setAlignment(getLayoutAlignment())
|
||||||
.setLineSpacing(getLineSpacingExtra(), getLineSpacingMultiplier())
|
.setLineSpacing(getLineSpacingExtra(), getLineSpacingMultiplier())
|
||||||
.setIncludePad(getIncludeFontPadding())
|
.setIncludePad(getIncludeFontPadding())
|
||||||
.setBreakStrategy(getBreakStrategy())
|
.setBreakStrategy(getBreakStrategy())
|
||||||
.setHyphenationFrequency(getHyphenationFrequency())
|
.setHyphenationFrequency(getHyphenationFrequency())
|
||||||
.setJustificationMode(getJustificationMode())
|
.setJustificationMode(getJustificationMode())
|
||||||
.setMaxLines(mMaxMode == LINES ? mMaximum : Integer.MAX_VALUE)
|
.setMaxLines(mMaxMode == LINES ? mMaximum : Integer.MAX_VALUE)
|
||||||
.setTextDirection(getTextDirectionHeuristic());
|
.setTextDirection(getTextDirectionHeuristic());
|
||||||
|
|
||||||
final StaticLayout layout = layoutBuilder.build();
|
final StaticLayout layout = layoutBuilder.build();
|
||||||
|
|
||||||
// Lines overflow.
|
// Lines overflow.
|
||||||
if (maxLines != -1 && layout.getLineCount() > maxLines) {
|
if (maxLines != -1 && layout.getLineCount() > maxLines) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Height overflow.
|
// Height overflow.
|
||||||
if (layout.getHeight() > availableSpace.bottom) {
|
if (layout.getHeight() > availableSpace.bottom) {
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
Reference in New Issue
Block a user