大佬教程收集整理的这篇文章主要介绍了android – 如何在SpannableString中反转跨度的优先级,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
SpAnnableStringBuilder sp = new SpAnnableStringBuilder(); String blue = "blue"; String red = "red"; sp.append(bluE); sp.append(red); sp.append(bluE); sp.setSpan(new ForegroundColorSpan(Color.RED),blue,2*blue,SpAnned.SPAN_EXCLUSIVE_EXCLUSIVE); sp.setSpan(new ForegroundColorSpan(Color.bLUE),sp.length(),SpAnned.SPAN_EXCLUSIVE_EXCLUSIVE); ((TextView)findViewById(R.id.text_view)).setText(sp);
添加字符样式的顺序对于文本外观很重要.
Android通过SpAnned.SPAN_PRIORITY标志来设置处理跨度优先级的方法.但是当我们使用Html.fromHtml()时,优先级不在我们手中.那么我可以改变Html.fromHtmel输出的跨度优先级,还是可以从中创建新的spAnnable并创建新的span优先级;
final SpAnnable revertSpans(SpAnned stext) { Object[] spans = stext.getSpans(0,stext.length(),Object.class); SpAnnable ret = SpAnnable.Factory.geTinstance().newSpAnnable(stext.toString()); if (spans != null && spans.length > 0) { for(int i = spans.length - 1; i >= 0; --i) { ret.setSpan(spans[i],stext.getSpanStart(spans[i]),stext.getSpanEnd(spans[i]),stext.getSpanFlags(spans[i])); } } return ret; }
用法:
TextView tv = (TextView)finViewById(R.id.my_text_view); SpAnned stext = Html.fromHtml(text,null,mytagHandler); SpAnnable sreverted = revertSpans(stext); tv.setText(sreverted);
也许这很有用.
以上是大佬教程为你收集整理的android – 如何在SpannableString中反转跨度的优先级全部内容,希望文章能够帮你解决android – 如何在SpannableString中反转跨度的优先级所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。