Android EditText/TextView使用SpannableString显示复合文本
来源:互联网 发布:sql 替换指定位置字符 编辑:程序博客网 时间:2024/05/16 04:32
在Android中EditText用于编辑文本,TextView用于显示文本,但是有时候我们需要对其中的文本进行样式等方面的设置。Android为我们提供了SpannableString类来对指定文本进行处理。
1) ForegroundColorSpan 文本颜色
[java] view plaincopyprint?
- private void setForegroundColorSpan() {
- SpannableString spanString = new SpannableString("前景色");
- ForegroundColorSpan span = new ForegroundColorSpan(Color.BLUE);
- spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
2) BackgroundColorSpan 文本背景色
[java] view plaincopyprint?
- private void setBackgroundColorSpan() {
- SpannableString spanString = new SpannableString("背景色");
- BackgroundColorSpan span = new BackgroundColorSpan(Color.YELLOW);
- spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
3) StyleSpan 字体样式:粗体、斜体等
[java] view plaincopyprint?
- private void setStyleSpan() {
- SpannableString spanString = new SpannableString("粗体斜体");
- StyleSpan span = new StyleSpan(Typeface.BOLD_ITALIC);
- spanString.setSpan(span, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
4) RelativeSizeSpan 相对大小
[java] view plaincopyprint?
- private void setRelativeFontSpan() {
- SpannableString spanString = new SpannableString("字体相对大小");
- spanString.setSpan(new RelativeSizeSpan(2.5f), 0, 6,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
5) TypefaceSpan 文本字体
[html] view plaincopyprint?
- private void setTypefaceSpan() {
- SpannableString spanString = new SpannableString("文本字体");
- spanString.setSpan(new TypefaceSpan("monospace"), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanText);
- }
6) URLSpan 文本超链接
[java] view plaincopyprint?
- private void addUrlSpan() {
- SpannableString spanString = new SpannableString("超链接");
- URLSpan span = new URLSpan("http://www.baidu.com");
- spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
7) ImageSpan 图片
[html] view plaincopyprint?
- private void addImageSpan() {
- SpannableString spanString = new SpannableString(" ");
- Drawable d = getResources().getDrawable(R.drawable.ic_launcher);
- d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());
- ImageSpan span = new ImageSpan(d, ImageSpan.ALIGN_BASELINE);
- spanString.setSpan(span, 0, 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
8) ClickableSpan 文本有点击事件
[html] view plaincopyprint?
- private TextView textView;
- textView = (TextView)this.findViewById(R.id.textView);
- String text = "显示Activity";
- SpannableString spannableString = new SpannableString(text);
- spannableString.setSpan(new ClickableSpan() {
- @Override
- public void onClick(View widget) {
- Intent intent = new Intent(Main.this,OtherActivity.class);
- startActivity(intent);
- }
- // 表示点击整个text的长度都有效触发这个事件
- }, 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- textView.setText(spannableString);
- textView.setMovementMethod(LinkMovementMethod.getInstance());
9) UnderlineSpan 下划线
[html] view plaincopyprint?
- private void addUnderLineSpan() {
- SpannableString spanString = new SpannableString("下划线");
- UnderlineSpan span = new UnderlineSpan();
- spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
10) StrikethroughSpan 删除线
[html] view plaincopyprint?
- private void addStrikeSpan() {
- SpannableString spanString = new SpannableString("删除线");
- StrikethroughSpan span = new StrikethroughSpan();
- spanString.setSpan(span, 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
11) SuggestionSpan 相当于占位符
12) MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
13) RasterizerSpan 光栅效果
14) AbsoluteSizeSpan 绝对大小(文本字体)
[html] view plaincopyprint?
- private void setAbsoluteFontSpan() {
- SpannableString spannableString = new SpannableString("40号字体");
- AbsoluteSizeSpan absoluteSizeSpan = new AbsoluteSizeSpan(40);
- spannableString.setSpan(absoluteSizeSpan, 0, 5, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
- editText.append(spannableString);
- }
15) DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。
16) TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
[html] view plaincopyprint?
- private void setTextAppearanceSpan() {
- SpannableString spanString = new SpannableString("文本外貌");
- TextAppearanceSpan textAppearanceSpan = new TextAppearanceSpan(this, android.R.style.TextAppearance_Medium);
- spanString.setSpan(textAppearanceSpan, 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
- tv.append(spanString);
- }
0 0
- Android EditText/TextView使用SpannableString显示复合文本
- Android EditText/TextView使用SpannableString显示复合文本
- Android—EditText/TextView使用SpannableString显示复合文本
- Android EditText/TextView使用SpannableString显示复合文本
- Android EditText/TextView使用SpannableString显示复合文本
- Android EditText/TextView使用SpannableString显示复合文本
- Android EditText/TextView使用SpannableString显示复合文本
- Android EditText/TextView使用SpannableString显示复合文本
- [Android教程]TextView使用SpannableString设置复合文本
- Android中TextView使用SpannableString设置复合文本
- Android TextView使用SpannableString设置复合文本的方法
- 在TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- TextView使用SpannableString设置复合文本
- android R.java未生成出错总结
- android log分析
- Top 15 Ant Best Practices
- android editview和textview一致的表现
- Codeforces Problem 711E ZS and The Birthday Paradox(抽屉原理+乘法逆元+费马小定理+组合数+快速幂+概率论)
- Android EditText/TextView使用SpannableString显示复合文本
- 学习uml类图中的表示(适配器模式)
- ant自动化需要用到的命令
- dexopt优化和验证Dalvik (Dalvik Optimization and Verification With dexopt)
- Custom Class Loading in Dalvik
- GBDT训练分类器时,残差是如何计算的?
- eclipse中使用EasyExplorer插件定位文件
- github gist创新,微码分享
- android中获取当前activity的名称