Android UI中TextView的使用方法
2017-09-17 09:55
337 查看
Android UI中TextView的使用方法
一、TextView不同区域设置颜色,大小、点击事件
String msg = getResources().getString(R.string.school_roll_auth); SpannableStringBuilder style = new SpannableStringBuilder(msg); // 设置字体颜色 style.setSpan( new ForegroundColorSpan(getResources().getColor( R.color.tv_color_99)), 0, msg.length() - 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); style.setSpan( new ForegroundColorSpan(getResources().getColor( R.color.text_blue)), msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); // 设置字体背景色 style.setSpan( new BackgroundColorSpan(getResources().getColor( R.color.bg_common)), msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); // 设置可点击部分 style.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { //do Click .... } @Override public void updateDrawState(TextPaint ds) { 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());
//设置字体不同大小 SpannableStringBuilder sb = new SpannableStringBuilder(numText); sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources() .getDimensionPixelSize(R.dimen.text_size_24)), 0, income.indexOf(".") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sb.setSpan(new AbsoluteSizeSpan(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方法
SpannableStringBuilder sb = new SpannableStringBuilder(num); SpannableStringBuilder sbUnitName = sb.append("元"); sbUnitName.setSpan(new AbsoluteSizeSpan(getResources().getDimensionPixelSize(floatSizeResourcesId)), num.length() - 1, num.length() + unitName.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
append之后数符索引不是从0开始,是从原始字符开始
如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
您可能感兴趣的文章:
相关文章推荐
- listview中设置textView使用方法etonitemclicklistener 无效的问题
- Android中AutoCompleteTextView的使用方法
- Android TextView的使用方法
- TextView中getCompoundDrawables()方法使用示例
- Android开发系列(二十):AutoCompleteTextView(自己主动完毕文本框)的功能和使用方法
- android Textview文字监控(Textview使用方法)
- TextView ,EditText,Button ,Menu四个常用控件 的使用方法
- android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法
- Android使用selector修改TextView中字体颜色和背景色的方法
- android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法
- Android中使用TextView实现图文混排的方法
- TextView SpannableString 使用方法
- Android textview 不使用ScrollView也可滚动的方法
- iOS 开发之TextView的属性使用和代理方法使用
- Android UI 设计之 TextView EditText 组件属性方法最详细解析
- Android TextView的append方法与滚动条同时使用
- DatePicker和DataPickerDialog以及AutoCompleteTextView的基本使用方法
- 使用TextView显示图像添加链接的方法
- android TextView多行文本(超过3行)使用ellipsize属性无效问题的解决方法
- TextView中getCompoundDrawables()方法使用示例