Android TextView中文字设置超链接、颜色、字体TextView是用来显示文本的,有时需要给TextView中的个别字设置
Android TextView中文字设置超链接、颜色、字体
TextView是用来显示文本的,有时需要给TextView中的个别字设置为超链接,或者设置个别字的颜色、字体等,那就需要用到Spannable对象,可以借助Spannable对象实现以上设置。
效果图:?
Activity代码:
- package?com.zhou.activity; ????import?android.app.Activity; ??import?android.graphics.Color; ??import?android.os.Bundle; ??import?android.text.Spannable; ??import?android.text.SpannableString; ??import?android.text.Spanned; ??import?android.text.method.LinkMovementMethod; ??import?android.text.style.BackgroundColorSpan; ??import?android.text.style.ForegroundColorSpan; ??import?android.text.style.StyleSpan; ??import?android.text.style.URLSpan; ??import?android.widget.TextView; ????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()); ??????} ??}
