在Android中EditText用于编辑文本,TextView用于显示文本,但是有时候我们需要对其中的文本进行样式等方面的设置。Android为我们提供了SpannableString类来对指定文本进行处理。

1) ForegroundColorSpan 文本颜色

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文本背景色

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 字体样式:粗体、斜体等

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 相对大小

private void setRelativeFontSpan() {SpannableString spanString = new SpannableString("字体相对大小");spanString.setSpan(new RelativeSizeSpan(2.5f), 0, 6,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);tv.append(spanString);    }

5) TypefaceSpan 文本字体

private void setTypefaceSpan() {SpannableString spanString = new SpannableString("文本字体");spanString.setSpan(new TypefaceSpan("monospace"), 0, 4, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);tv.append(spanText);}


6) URLSpan 文本超链接

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 图片

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 文本有点击事件

private TextView textView;textView = (TextView)this.findViewById(R.id.textView);String text = "显示Activity";SpannableString spannableString = new SpannableString(text);spannableString.setSpan(new ClickableSpan() {@Overridepublic 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 下划线

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 删除线

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 绝对大小(文本字体)

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 文本外貌(包括字体、大小、样式和颜色)

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);}

更多相关文章

  1. Android字体跟颜色
  2. Android EditText文本编辑框获取焦点调出键盘输入法
  3. 在android中利用多线程实现对控件的更新(动态修改文本框中的值)。
  4. Android控件_TextView(显示文本框控件)
  5. Android 如何应用ttf图标字体库
  6. Android中获取应用程序(包)的大小-----PackageManager的使用(二)
  7. Android详解之TextView(文本框)详解

随机推荐

  1. 利用Android studio 调试任意已有c++工程
  2. 【Android】[3]如何制作引导页轮播图
  3. Android应用程序App应用上线流程
  4. Xamarin.Forms学习系列之Android集成极光
  5. Android(安卓)之 ContentProvider手机簿
  6. Android状态机StateMachine使用举例及源
  7. android adb 命令实践
  8. Android studio使用过程中提示“警告: [d
  9. 将Android设备变为IBeacon设备
  10. android studio打包导出未签名apk