Android UI中TextView的使用方法
AndroidUI中TextView的使用方法
一、TextView不同区域设置颜色,大小、点击事件
Stringmsg=getResources().getString(R.string.school_roll_auth);
SpannableStringBuilderstyle=newSpannableStringBuilder(msg);
//设置字体颜色
style.setSpan(
newForegroundColorSpan(getResources().getColor(
R.color.tv_color_99)),0,msg.length()-5,
Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
style.setSpan(
newForegroundColorSpan(getResources().getColor(
R.color.text_blue)),msg.length()-5,msg.length(),
Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
//设置字体背景色
style.setSpan(
newBackgroundColorSpan(getResources().getColor(
R.color.bg_common)),msg.length()-5,msg.length(),
Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
//设置可点击部分
style.setSpan(newClickableSpan(){
@Override
publicvoidonClick(Viewwidget){
//doClick....
}
@Override
publicvoidupdateDrawState(TextPaintds){
super.updateDrawState(ds);
ds.setUnderlineText(false);
ds.clearShadowLayer();
}
},msg.length()-5,msg.length(),Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
tv_school_roll_msg.setText(style);
//此方法在需要响应用户事件时使用,如点击一个电话号码就跳转到拨号页面。如果不执行这个方法是不会响应事件的,即便文本看着已经是下划线蓝色字了。
tv_school_roll_msg.setMovementMethod(LinkMovementMethod.getInstance());
//设置字体不同大小
SpannableStringBuildersb=newSpannableStringBuilder(numText);
sb.setSpan(newAbsoluteSizeSpan(App.getInstance().getResources()
.getDimensionPixelSize(R.dimen.text_size_24)),0,
income.indexOf(".")+1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
sb.setSpan(newAbsoluteSizeSpan(App.getInstance().getResources()
.getDimensionPixelSize(R.dimen.text_size_16)),
income.indexOf(".")+1,income.length(),
Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
view.setText(sb);
注:Spannable.SPAN_EXCLUSIVE_EXCLUSIVE参数是对区域的说明,左包含,右不包含 SpannableStringBuilder的append方法
SpannableStringBuildersb=newSpannableStringBuilder(num);
SpannableStringBuildersbUnitName=sb.append("元");
sbUnitName.setSpan(newAbsoluteSizeSpan(getResources().getDimensionPixelSize(floatSizeResourcesId)),num.length()-1,num.length()+unitName.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
append之后数符索引不是从0开始,是从原始字符开始
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!