@@ -34,7 +34,7 @@ public class AutoResizeTextView extends TextView
34
34
private int _maxLines ;
35
35
private boolean _enableSizeCache =true ;
36
36
private boolean _initiallized =false ;
37
- private TextPaint paint ;
37
+ private final TextPaint _paint ;
38
38
39
39
private interface SizeTester
40
40
{
@@ -64,6 +64,7 @@ public AutoResizeTextView(final Context context,final AttributeSet attrs,final i
64
64
// using the minimal recommended font size
65
65
_minTextSize =TypedValue .applyDimension (TypedValue .COMPLEX_UNIT_SP ,12 ,getResources ().getDisplayMetrics ());
66
66
_maxTextSize =getTextSize ();
67
+ _paint = new TextPaint (getPaint ());
67
68
if (_maxLines ==0 )
68
69
// no value was assigned during construction
69
70
_maxLines =NO_LINE_LIMIT ;
@@ -76,17 +77,17 @@ public AutoResizeTextView(final Context context,final AttributeSet attrs,final i
76
77
@ Override
77
78
public int onTestSize (final int suggestedSize ,final RectF availableSPace )
78
79
{
79
- paint .setTextSize (suggestedSize );
80
+ _paint .setTextSize (suggestedSize );
80
81
final String text =getText ().toString ();
81
82
final boolean singleLine =getMaxLines ()==1 ;
82
83
if (singleLine )
83
84
{
84
- textRect .bottom =paint .getFontSpacing ();
85
- textRect .right =paint .measureText (text );
85
+ textRect .bottom =_paint .getFontSpacing ();
86
+ textRect .right =_paint .measureText (text );
86
87
}
87
88
else
88
89
{
89
- final StaticLayout layout =new StaticLayout (text ,paint ,_widthLimit ,Alignment .ALIGN_NORMAL ,_spacingMult ,_spacingAdd ,true );
90
+ final StaticLayout layout =new StaticLayout (text ,_paint ,_widthLimit ,Alignment .ALIGN_NORMAL ,_spacingMult ,_spacingAdd ,true );
90
91
// return early if we have more lines
91
92
if (getMaxLines ()!=NO_LINE_LIMIT &&layout .getLineCount ()>getMaxLines ())
92
93
return 1 ;
@@ -111,9 +112,7 @@ public int onTestSize(final int suggestedSize,final RectF availableSPace)
111
112
@ Override
112
113
public void setTypeface (final Typeface tf )
113
114
{
114
- if (paint ==null )
115
- paint =new TextPaint (getPaint ());
116
- paint .setTypeface (tf );
115
+ _paint .setTypeface (tf );
117
116
adjustTextSize ();
118
117
super .setTypeface (tf );
119
118
}
0 commit comments