Ответьте на свой вопрос не только верно для textview
, но и для других view
в Android.
Вам понадобится новый класс your-self, который расширяет представление, необходимое для изменения стиля.
например:
public class NewTextView extends TextView{
public NewTextView(){} //just constructor
@Override
public void onDraw(Canvas canvas){
//this is a main method that do your work.
//for example, you will draw a `baloon` like iPhone
}
Вот пример кода, который рисуетпрямая линия в каждой строке EditText
(как будто вы печатаете на бумаге).Вы можете увидеть этот код и научиться делать его так.
Опять же: чтобы сделать это, вы должны иметь некоторые знания о рисовании в Android (Canvas или OpenGL).
public class EditTextExtra extends EditText {
private Rect Rect;
private Paint Paint;
public EditTextExtra (Context context, AttributeSet attrs) {
super(context, attrs);
Rect = new Rect();
Paint = new Paint();
Paint.setStyle(Paint.Style.FILL_AND_STROKE);
Paint.setColor(Color.BLACK);
}
@Override
protected void onDraw(Canvas canvas) {
int count = getHeight()/getLineHeight();
if(getLineCount() > count){
count = getLineCount(); // for long text with scrolling
}
Rect r = Rect;
Paint paint = Paint;
int baseline = getLineBounds(0, r); // first line
for (int i = 0; i < count; i++) {
canvas.drawLine(r.left, baseline + 1, r.right, baseline + 1, paint);
baseline += getLineHeight(); // next line
}
super.onDraw(canvas);
}
}