在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. 三、安卓UI学习(1)
  2. android Dialog大小修改
  3. android style
  4. Android获取屏幕大小
  5. Android中获取屏幕相关信息(屏幕大小,状态栏、标题栏高度)
  6. 一个Demo让你掌握所有的android控件
  7. android 设置bitmap 设置图片的大小
  8. Android漂亮的Help提示框
  9. Android(安卓)TextToSpeech语音播放文本

随机推荐

  1. 【Android】Android(安卓)签名相关问题
  2. CoordinatorLayout使用自定义Behavior实
  3. NestedScrollView中webview被点击,NestedS
  4. 占位的实现和间接实现从快捷建中启动一个
  5. Android应用程序结构介绍
  6. Android底部导航栏实现(一)之BottomNavigat
  7. 解决Android SDK Manager不能访问Google
  8. [Android]定制RadioButton样式
  9. 50个安卓开发者应该熟悉的Android Studio
  10. EditText的属性