SpannableStringBuilder的妙用
来源:互联网 发布:淘宝女郎叶青 编辑:程序博客网 时间:2024/06/08 04:31
好久没写博客了,我们的项目忙完了,现在做下总结,我最大的收获也就是这个SpannableStringBuilder。首先,小弟向各位大神介绍下SpannableStringBuilder有哪些好用的地方:
1.可以设置TextView中字体的颜色
2.可以在TextView的文字中间插入一张图片
看了上面两点,如果你想到的第一种办法是写一个自定义控件,那么你跟我想的一样,哈哈。不过这里我要用SpannableStringBuilder,一个更好用的控件。
下面贴下我的代码:
<span style="font-size:14px;">private void drawTextView() { // 需要处理的文本,[icon]是需要被替代的文本 String text = mTextView.getText().toString().trim(); if (TextUtils.isEmpty(text)) { return; } int start = 2; String label = "[icon]"; if (text.length() >= start) { Drawable drawable = getResources().getDrawable(R.drawable.ic_yzt); drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight()); StringBuffer buffer = new StringBuffer(text); buffer = buffer.insert(start, label); SpannableStringBuilder spannable = new SpannableStringBuilder(buffer); int length = buffer.length(); // 高亮蓝色 CharacterStyle colorSpan = new ForegroundColorSpan(getResources().getColor(R.color.onebill_blue)); spannable.setSpan(colorSpan, start + label.length(), length - 2, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); //高亮白色 CharacterStyle不能被多个字段所公用 CharacterStyle colorSpanWhite1 = new ForegroundColorSpan(getResources().getColor(R.color.color_transparent_hint_withe)); CharacterStyle colorSpanWhite2 = new ForegroundColorSpan(getResources().getColor(R.color.color_transparent_hint_withe)); spannable.setSpan(colorSpanWhite1, 0, start, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); spannable.setSpan(colorSpanWhite2, length - 2, length, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); // 图片 CharacterStyle imageSpan = new ImageSpan(drawable, ImageSpan.ALIGN_BASELINE); spannable.setSpan(imageSpan, start, start + label.length(), Spannable.SPAN_INCLUSIVE_EXCLUSIVE); <span style="font-family:Arial, Helvetica, sans-serif;">mTextView</span>.setText(spannable); } }</span>
好了 这里用到了几个好用的东西:
<span style="font-size:14px;">首先设置下CharacterStyle,然后spannable.setSpan设置部分字体颜色。 </span>
<span style="font-size: 14px;">插入图片的话,new一个ImageSpan,然后sapnnable.setSpan插入其中。</span>
<span style="font-size: 14px;">最后mTextView设置下text,到这里我们就大功告成了。</span>
0 0
- SpannableStringBuilder的妙用
- SpannableStringBuilder的使用方法
- SpannableStringBuilder的使用
- SpannableStringBuilder的使用方法
- SpannableStringBuilder的使用方法
- SpannableStringBuilder的使用
- SpannableStringBuilder.setSpan()的细节
- SpannableStringBuilder的使用方法
- SpannableStringBuilder的用法
- SpannableStringBuilder的使用方法
- SpannableStringBuilder的用法
- 【Android】强大的SpannableStringBuilder
- 【Android】强大的SpannableStringBuilder
- 【Android】强大的SpannableStringBuilder
- 强大的SpannableStringBuilder
- 【Android】强大的SpannableStringBuilder
- 《SpannableStringBuilder的使用》
- 强大的SpannableStringBuilder
- Iometer 使用界限值
- 01 netty介绍
- Nginx初探
- com 注册表信息
- Error:Execution failed for task ':demo:packageRelease'. > Unable to compute hash of 路径\classes.jar
- SpannableStringBuilder的妙用
- Android日志
- jQuery Timers插件
- iOS 9音频应用播放音频之第一个ios9音频实例
- Penn Treebank词性标记集
- 每日新知识
- 跟我一起写 Makefile
- 基于pjsip和webrtc封装sip客户端 技术选型
- Hello World---打不死的小强