@@ -17,7 +17,7 @@ public class TextView extends View {
1717 private final Paint paint = new Paint ();
1818 private ColorStateList textColor = new ColorStateList (Color .RED );
1919 private final Editable text = new Editable ();
20- private final TextLayout layout = new TextLayout (text , paint , new SimpleTextRenderer (paint ));
20+ private final TextLayout layout = new TextLayout (text , paint , new SimpleTextRenderer ());
2121
2222 public TextView (Context context ) {
2323 this (context , null );
@@ -129,36 +129,34 @@ public void setTypeface(Typeface font) {
129129 setTextSize (paint .getTextSize ());
130130 }
131131
132- public CharSequence getText ( ) {
133- return text ;
132+ protected void onDrawCharacter ( Canvas canvas , char ch , int x , int y , int charIndex , int lineStart , int lineEnd ) {
133+ canvas . drawText ( String . valueOf ( ch ), x , y , paint ) ;
134134 }
135- }
136-
137- class SimpleTextRenderer implements TextLayout .TextRenderer {
138- private final Paint paint ;
139135
140- SimpleTextRenderer ( Paint paint ) {
141- this . paint = paint ;
136+ public CharSequence getText ( ) {
137+ return text ;
142138 }
143139
144- @ Override
145- public void drawSelection (Canvas canvas , int x , int y , int width , int height ) {}
146-
147- @ Override
148- public void drawCharacter (Canvas canvas , char ch , int x , int y , int charIndex , int lineStart , int lineEnd ) {
149- switch (ch ) {
150- case '\n' :
151- case '\r' :
152- case ' ' :
153- case '\t' :
154- case '\f' :
155- break ;
156- default :
157- canvas .drawText (String .valueOf (ch ), x , y , paint );
158- break ;
140+ private class SimpleTextRenderer implements TextLayout .TextRenderer {
141+ @ Override
142+ public void drawSelection (Canvas canvas , int x , int y , int width , int height ) {}
143+
144+ @ Override
145+ public void drawCharacter (Canvas canvas , char ch , int x , int y , int charIndex , int lineStart , int lineEnd ) {
146+ switch (ch ) {
147+ case '\n' :
148+ case '\r' :
149+ case ' ' :
150+ case '\t' :
151+ case '\f' :
152+ break ;
153+ default :
154+ onDrawCharacter (canvas , ch , x , y , charIndex , lineStart , lineEnd );
155+ break ;
156+ }
159157 }
160- }
161158
162- @ Override
163- public void drawCaret (Canvas canvas , int x , int y ) {}
159+ @ Override
160+ public void drawCaret (Canvas canvas , int x , int y ) {}
161+ }
164162}
0 commit comments