@@ -30,21 +30,30 @@ public static android.text.StaticLayout.Builder createStaticLayoutBuilder(CharSe
30
30
}
31
31
32
32
public static android .text .StaticLayout createStaticLayout (CharSequence source , TextPaint paint , int width ,
33
- Layout .Alignment align , float spacingmult , float spacingadd , boolean includepad , TextUtils .TruncateAt ellipsize , int ellipsizedWidth ) {
34
-
33
+ Layout .Alignment align , float spacingmult , float spacingadd , boolean includepad , TextUtils .TruncateAt ellipsize , int ellipsizedWidth , int height ) {
34
+ android . text . StaticLayout staticLayout = null ;
35
35
if (Build .VERSION .SDK_INT >= 23 ) {
36
- return createStaticLayoutBuilder (source , paint , width , align , spacingmult , spacingadd , includepad , ellipsize , ellipsizedWidth ).build ();
36
+ staticLayout = createStaticLayoutBuilder (source , paint , width , align , spacingmult , spacingadd , includepad , ellipsize , ellipsizedWidth ).build ();
37
37
} else {
38
- return new android .text .StaticLayout (source , 0 , source .length (), paint , width , align , spacingmult , spacingadd , includepad , ellipsize , ellipsizedWidth );
38
+ staticLayout = new android .text .StaticLayout (source , 0 , source .length (), paint , width , align , spacingmult , spacingadd , includepad , ellipsize , ellipsizedWidth );
39
39
}
40
+ return createEllipsizeStaticLayout (staticLayout , includepad , ellipsize , ellipsizedWidth , height );
41
+ }
42
+ public static android .text .StaticLayout createStaticLayout (CharSequence source , TextPaint paint , int width ,
43
+ Layout .Alignment align , float spacingmult , float spacingadd , boolean includepad , TextUtils .TruncateAt ellipsize , int ellipsizedWidth ) {
44
+ return createStaticLayout (source , paint , width , align , spacingmult , spacingadd , includepad ,ellipsize , ellipsizedWidth , -1 );
45
+ }
46
+
47
+ public static android .text .StaticLayout createStaticLayout (CharSequence source , Paint paint , int width ,
48
+ Layout .Alignment align , float spacingmult , float spacingadd , boolean includepad , TextUtils .TruncateAt ellipsize , int ellipsizedWidth , int height ) {
49
+ return createStaticLayout (source , new TextPaint (paint ), width , align , spacingmult , spacingadd , includepad ,ellipsize , ellipsizedWidth , height );
40
50
}
41
-
42
51
public static android .text .StaticLayout createStaticLayout (CharSequence source , Paint paint , int width ,
43
52
Layout .Alignment align , float spacingmult , float spacingadd , boolean includepad , TextUtils .TruncateAt ellipsize , int ellipsizedWidth ) {
44
- return createStaticLayout (source , new TextPaint ( paint ) , width , align , spacingmult , spacingadd , includepad ,ellipsize , ellipsizedWidth );
53
+ return createStaticLayout (source , paint , width , align , spacingmult , spacingadd , includepad ,ellipsize , ellipsizedWidth , - 1 );
45
54
}
46
55
47
- public static void draw (android .text .StaticLayout staticLayout , Canvas canvas , boolean includepad , TextUtils .TruncateAt ellipsize , int ellipsizedWidth , int maxHeight ) {
56
+ public static android . text . StaticLayout createEllipsizeStaticLayout (android .text .StaticLayout staticLayout , boolean includepad , TextUtils .TruncateAt ellipsize , int ellipsizedWidth , int maxHeight ) {
48
57
if (maxHeight != -1 && ellipsize != null ) {
49
58
50
59
// Calculate the number of lines that fit within the available height
@@ -74,7 +83,7 @@ public static void draw(android.text.StaticLayout staticLayout, Canvas canvas, b
74
83
ellipsize ,
75
84
ellipsizedWidth );
76
85
builder .setMaxLines (maxLines );
77
- staticLayout = builder .build ();
86
+ return builder .build ();
78
87
} else {
79
88
int truncationIndex = staticLayout .getLineEnd (maxLines - 1 );
80
89
@@ -96,7 +105,7 @@ public static void draw(android.text.StaticLayout staticLayout, Canvas canvas, b
96
105
}
97
106
98
107
// Re-create the StaticLayout with the truncated text
99
- staticLayout = createStaticLayout (new SpannableString (truncatedText ), staticLayout .getPaint (),
108
+ return createStaticLayout (new SpannableString (truncatedText ), staticLayout .getPaint (),
100
109
staticLayout .getWidth (),
101
110
staticLayout .getAlignment (),
102
111
staticLayout .getSpacingMultiplier (),
@@ -108,6 +117,6 @@ public static void draw(android.text.StaticLayout staticLayout, Canvas canvas, b
108
117
}
109
118
}
110
119
}
111
- staticLayout . draw ( canvas ) ;
120
+ return staticLayout ;
112
121
}
113
122
}
0 commit comments