自定义了一个TextView,用SpannableStringBuilder给她设了带格式的字符串
SpannableStringBuilder style=new SpannableStringBuilder(text);
style.setSpan(new ForegroundColorSpan(Color.RED),2,3,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.RED),5,9,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
this.setText(style);
然后重写这个TextView的onDraw,想在刷屏时显示其内容(使用类似 Canvas::drawText 的形式)但是this.getText取出的文字类型不能直接用于drawText,请问这时候要用什么方法显示TextView内的文字
SpannableStringBuilder style=new SpannableStringBuilder(text);
style.setSpan(new ForegroundColorSpan(Color.RED),2,3,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(new ForegroundColorSpan(Color.RED),5,9,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
this.setText(style);
然后重写这个TextView的onDraw,想在刷屏时显示其内容(使用类似 Canvas::drawText 的形式)但是this.getText取出的文字类型不能直接用于drawText,请问这时候要用什么方法显示TextView内的文字
如果是, 可以用得来的drawable.draw(canvas)
public void onDraw(Canvas c) //TextView::onDraw(Canvas c)
{
Paint p = new Paint();
SpannableStringBuilder ss = new SpannableStringBuilder("abcdefg");
ss.setSpan(new ForegroundColorSpan(Color.RED),2,5,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
this.setText(ss);
c.drawText(this.getText().toString(), 10, 10, p); }
是少设了什么?还是drawText本身就打印不出格式?