热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SpannableString用法简单记录

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
*/


推荐阅读
author-avatar
手机用户2502909917
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有