TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。
代码如下:
public
class
TextViewLinkActivity
extends
Activity {
TextView myTextView;
@Override
public
void
onCreate(Bundle savedInstanceState) {
super
.onCreate(savedInstanceState);
setContentView(R.layout.main);
myTextView = (TextView)
this
.findViewById(R.id.myTextView);
//创建一个 SpannableString对象
SpannableString sp =
new
SpannableString(
"这句话中有百度超链接,有高亮显示,这样,或者这样,还有斜体."
);
//设置超链接
sp.setSpan(
new
URLSpan(
"http://www.baidu.com"
),
5
,
7
,
Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置高亮样式一
sp.setSpan(
new
BackgroundColorSpan(Color.RED),
17
,
19
,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置高亮样式二
sp.setSpan(
new
ForegroundColorSpan(Color.YELLOW),
20
,
24
,Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
//设置斜体
sp.setSpan(
new
StyleSpan(android.graphics.Typeface.BOLD_ITALIC),
27
,
29
, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
//SpannableString对象设置给TextView
myTextView.setText(sp);
//设置TextView可点击
myTextView.setMovementMethod(LinkMovementMethod.getInstance());
}
}