Skip to content

Commit b5be9d4

Browse files
[core] Add onDrawCharacter on TextView
1 parent 2cb1b95 commit b5be9d4

1 file changed

Lines changed: 25 additions & 27 deletions

File tree

core/src/br/nullexcept/mux/widget/TextView.java

Lines changed: 25 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)