data.text, 0, data.text.length(), paint, data.textWidth) .setLineSpacing(data.lineSpacingAdd, data.lineSpacingMult) .setBreakStrategy(data.breakStrategy); if (enforceMaxLines && data.maxLines != -1) { builder.setMaxLines(data.maxLines);
@TargetApi(Build.VERSION_CODES.M) private void createLayoutM(int width, float lineSpacingAdd) { layout = StaticLayout.Builder.obtain(displayText, 0, displayText.length(), paint, width - titleInsetStart - titleInsetEnd) .setLineSpacing(lineSpacingAdd, 1f) .setMaxLines(maxLines) .setEllipsize(TextUtils.TruncateAt.END) .setBreakStrategy(BREAK_STRATEGY) .build(); lineCount = layout.getLineCount(); }
.setMaxLines(maxLines) .setTextDirection(StaticLayoutProxy.fromTextDirectionHeuristicCompat(textDirection)) .setBreakStrategy(breakStrategy) .setHyphenationFrequency(hyphenationFrequency) .setIndents(leftIndents, rightIndents);
private static Layout createUnrestrictedLayout(@Nonnull TextView view) { CharSequence text = view.getText(); Layout layout = view.getLayout(); TextPaint paint = layout.getPaint(); if (SDK_INT >= M) { return StaticLayout.Builder .obtain(text, 0, text.length(), layout.getPaint(), layout.getWidth()) .setAlignment(layout.getAlignment()) .setLineSpacing(view.getLineSpacingExtra(), view.getLineSpacingMultiplier()) .setIncludePad(view.getIncludeFontPadding()) .setBreakStrategy(view.getBreakStrategy()) .setHyphenationFrequency(view.getHyphenationFrequency()) .build(); } else { return new StaticLayout( text, paint, text.length(), layout.getAlignment(), view.getLineSpacingMultiplier(), view.getLineSpacingExtra(), view.getIncludeFontPadding()); } }