TextLayoutBuilder layoutBuilder = new TextLayoutBuilder(); layoutBuilder.setShouldCacheLayout(false); .setDensity(density) .setEllipsize(ellipsize) .setMaxLines(maxLines) .setShadowLayer(shadowRadius, shadowDx, shadowDy, shadowColor) .setSingleLine(isSingleLine) .setText(text) .setTextSize(textSize) .setWidth(SizeSpec.getSize(widthSpec), textMeasureMode) .setIncludeFontPadding(shouldIncludeFontPadding) .setTextSpacingExtra(extraSpacing) .setTextSpacingMultiplier(spacingMultiplier) .setAlignment(textAlignment) .setLinkColor(linkColor) .setJustificationMode(justificationMode) .setBreakStrategy(breakStrategy) .setHyphenationFrequency(hyphenationFrequency); layoutBuilder.setLineHeight(lineHeight); layoutBuilder.setLetterSpacing(letterSpacing); layoutBuilder.setMinEms(minEms); } else { layoutBuilder.setMinWidth(minTextWidth); layoutBuilder.setMaxEms(maxEms);
@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()); }
builder.setTextColor(textColor); builder.setTextSize(textSize); builder.setShadowLayer(radius, dx, dy, shadowColor); builder.setTypeface(Typeface.defaultFromStyle(textStyle)); } else { builder.setTypeface(null); builder.setEllipsize(TextUtils.TruncateAt.values()[ellipsize - 1]); } else { builder.setEllipsize(null); builder.setSingleLine(singleLine); builder.setMaxLines(maxLines); builder.setBreakStrategy(breakStrategy); builder.setHyphenationFrequency(hyphenationFrequency);
builder.setShadowLayer(radius, dx, dy, shadowColor); builder.setTextColor(textColor); builder.setTextSize(textSize); builder.setTypeface(Typeface.defaultFromStyle(textStyle));
@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 testSetTextColor() { mLayout = mBuilder.setTextColor(0xFFFF0000).build(); assertEquals(mBuilder.getTextColor(), 0xFFFF0000); assertEquals(mLayout.getPaint().getColor(), 0xFFFF0000); }
@Test public void testSetEllipsize() { mLayout = mBuilder.setEllipsize(TextUtils.TruncateAt.MARQUEE).build(); assertEquals(mBuilder.getEllipsize(), TextUtils.TruncateAt.MARQUEE); }
@Test public void testSetTypeface() { mLayout = mBuilder.setTypeface(Typeface.MONOSPACE).build(); assertEquals(mBuilder.getTypeface(), Typeface.MONOSPACE); }
@Test public void testSetHyphenationFrequency() { mLayout = mBuilder.setHyphenationFrequency(1).build(); assertEquals(mBuilder.getHyphenationFrequency(), 1); }
@Test public void testSetSingleLine() { mLayout = mBuilder.setSingleLine(true).build(); assertEquals(mBuilder.getSingleLine(), true); }
@Test public void testSetMaxLines() { mLayout = mBuilder.setMaxLines(10).build(); assertEquals(mBuilder.getMaxLines(), 10.0f, 0.0f); }
@Test public void testSetBreakStrategy() { mLayout = mBuilder.setBreakStrategy(1).build(); assertEquals(mBuilder.getBreakStrategy(), 1); }
@Test public void testSetTextSize() { mLayout = mBuilder.setTextSize(10).build(); assertEquals(mBuilder.getTextSize(), 10.0f, 0.0f); assertEquals(mLayout.getPaint().getTextSize(), 10.0f, 0.0f); }
@Test public void testNewPaint() { Paint oldPaint = mBuilder.mParams.paint; // Build the current builder. mBuilder.build(); // Change paint properties. mBuilder.setShadowLayer(10.0f, 1.0f, 1.0f, 0); Paint newPaint = mBuilder.mParams.paint; assertNotEquals(oldPaint, newPaint); }
/** * Sets a text style for the layout. * * @param style The text style for the layout * @return This {@link TextLayoutBuilder} instance */ public TextLayoutBuilder setTextStyle(int style) { return setTypeface(Typeface.defaultFromStyle(style)); }
/** * 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); }
@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 testSetTextColorStateList() { mLayout = mBuilder.setTextColor(ColorStateList.valueOf(0xFFFF0000)).build(); assertEquals(mBuilder.getTextColor(), 0xFFFF0000); assertEquals(mLayout.getPaint().getColor(), 0xFFFF0000); }
@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()); }