/** * Sets the intended width of the text layout. * * @param width The width of the text layout * @return This {@link TextLayoutBuilder} instance * @see #setWidth(int, int) */ public TextLayoutBuilder setWidth(@Px int width) { return setWidth(width, width <= 0 ? MEASURE_MODE_UNSPECIFIED : MEASURE_MODE_EXACTLY); }
.setText(text) .setTextSize(textSize) .setWidth(SizeSpec.getSize(widthSpec), textMeasureMode) .setIncludeFontPadding(shouldIncludeFontPadding) .setTextSpacingExtra(extraSpacing)
@Test public void testSingleLine() { mLayout = mBuilder.setText(LONG_TEXT).setSingleLine(true).setWidth(1000).build(); assertEquals(mLayout.getLineCount(), 1); }
@Test public void testMaxLines() { mLayout = mBuilder.setText(LONG_TEXT).setMaxLines(2).setWidth(1000).build(); assertEquals(mLayout.getLineCount(), 2); }
@Test public void testMeasureModeExactly() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.LONG_TEXT) .setWidth(20, MEASURE_MODE_EXACTLY) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(20, layout.getWidth()); }
@Test public void testMeasureModeAtMostShortText() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.SHORT_TEXT) .setWidth(20, MEASURE_MODE_AT_MOST) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(ShadowLayout.SHORT_TEXT_LENGTH, layout.getWidth()); }
@Test public void testLegacyBehaviour() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.LONG_TEXT) .setWidth(-1) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(ShadowLayout.LONG_TEXT_LENGTH, layout.getWidth()); } }
@Test public void testMeasureModeUnspecified() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.LONG_TEXT) .setWidth(20, MEASURE_MODE_UNSPECIFIED) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(ShadowLayout.LONG_TEXT_LENGTH, layout.getWidth()); }
@Test public void testMeasureModeAtMostLongText() { final Layout layout = new TextLayoutBuilder() .setText(ShadowLayout.LONG_TEXT) .setWidth(20, MEASURE_MODE_AT_MOST) .setTypeface(Typeface.DEFAULT) .setTextSize(10) .build(); assertEquals(20, layout.getWidth()); }