作者:手机用户2502909917 | 来源:互联网 | 2023-07-10 18:13
SpannableStringspannableStringnewSpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体。");
SpannableString spannableString = new SpannableString("这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体。");
//设置超链接
spannableString.setSpan(new URLSpan("http://www.baidu.com"), 5, 7, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置高亮样式1
spannableString.setSpan(new BackgroundColorSpan(Color.RED), 17, 19, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置高亮样式2
spannableString.setSpan(new ForegroundColorSpan(Color.YELLOW), 20, 24, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
//设置斜体
spannableString.setSpan(new StyleSpan(android.graphics.Typeface.BOLD_ITALIC), 27, 29, Spanned.SPAN_EXCLUSIVE_INCLUSIVE);
textView.setText(spannableString);
textView.setMovementMethod(LinkMovementMethod.getInstance());
//设置点击弹出新的activity
SpannableString spannableString2 = new SpannableString(text1);
spannableString2.setSpan(new ClickableSpan()
{
@Override
public void onClick(View arg0)
{
// TODO Auto-generated method stub
Intent intent = new Intent();
intent.setClass(MainActivity.this, ActivityOne.class);
startActivity(intent);
}
}, 0, text1.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
textView2.setText(spannableString2);
textView2.setMovementMethod(LinkMovementMethod.getInstance());
/*
* spannableString.setSpan(what, start, end, flags)
* 今天刚接触这个类,查了一下资料,做个记录
* 主要就是上面的这个方法,比较难理解的就是 最后一个参数 flags;
*
* EXCLUSIVE:独家的
* INCLUSIVE:包括的
* 把这两个单词翻译过来也就不难理解了,
* Spanned.SPAN_EXCLUSIVE_INCLUSIVE 翻译为 独家_包括
* 它是用来标识在 Span 范围内的文本前后输入新的字符时是否把它们也应用这个效果,上面就是前面不包括后面包括,其他flag同理解释
* 参考 :http://aichixihongshi.iteye.com/blog/1207503
*/