Вы можете сложить несколько TextViews с помощью Layout, который поддерживает это, например, FrameLayout
или RelativeLayout
. Тем не менее, я думаю, что лучший подход (который обеспечил бы лучший контроль над внешним видом) - это создание пользовательского представления и рисование текста на холсте самостоятельно. Вы можете сделать это с чем-то вроде этого (я не проверял, но он должен работать - возможно, потребуется несколько щипков, хотя):
public class TwoPartTextView extends View
{
private CharSequence part1 = "", part2 = "";
private Paint mPaint;
private int color1 = Color.BLACK, color2 = Color.BLACK;
private Context context;
private float part1Size = 12f, part2Size = 12f;
private int strokeWidth = 2;
public TwoPartTextView(Context context) {
super(context);
init(context);
}
public TwoPartTextView(Context context, AttributeSet attrs) {
super(context, attrs);
init(context);
}
public TwoPartTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init(context);
}
private void init(context) {
this.context = context;
mPaint = new Paint();
}
public void setText(CharSequence part1, int color1, part1Size, CharSequence part2, int color2, part2Size, strokeWidth) {
this.part1 = part1;
this.color1 = color1;
this.part1Size = part1Size;
this.part2 = part2;
this.color2 = color2;
this.part2Size = part2Size;
this.strokeWidth = strokeWidth;
mPaint.setStrokeWidth(strokeWidth);
}
@Override
public void onDraw(Canvas canvas) {
super.onDraw(canvas);
mPaint.setColor(color1);
mPaint.setTextSize(part1Size);
canvas.drawText(part1.toString(), 0, paint.getTextSize(), paint);
mPaint.setColor(color2);
mPaint.setTextSize(part2Size);
canvas.drawText(part2.toString(), getWidth()/2 /* tweak as needed*/, paint.getTextSize(), paint);
}
}
Затем, чтобы использовать его, добавить его в XML или создать его в коде, тогда звоните:
myTwoPartTextView.setText("text", Color.RED, 12f, "View", Color.BLACK, 14f, 2);
myTwoPartTextView.setText.invalidate();
Вы можете использовать framelayout или RelativeLayout складывать мнения. – kabuto178
Знаете ли вы, какие параметры я бы установил в каждом из них? – James
TextView способен отображать некоторые HTML-форматирования, не так ли проще? – SimonSays