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

1) ForegroundColorSpan 文本颜色

[java] view plain copy print ?
  1. privatevoidsetForegroundColorSpan(){
  2. SpannableStringspanString=newSpannableString("前景色");
  3. ForegroundColorSpanspan=newForegroundColorSpan(Color.BLUE);
  4. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  5. tv.append(spanString);
  6. }

2) BackgroundColorSpan 文本背景色

[java] view plain copy print ?
  1. privatevoidsetBackgroundColorSpan(){
  2. SpannableStringspanString=newSpannableString("背景色");
  3. BackgroundColorSpanspan=newBackgroundColorSpan(Color.YELLOW);
  4. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  5. tv.append(spanString);
  6. }

3) StyleSpan 字体样式:粗体、斜体等

[java] view plain copy print ?
  1. privatevoidsetStyleSpan(){
  2. SpannableStringspanString=newSpannableString("粗体斜体");
  3. StyleSpanspan=newStyleSpan(Typeface.BOLD_ITALIC);
  4. spanString.setSpan(span,0,4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  5. tv.append(spanString);
  6. }

4) RelativeSizeSpan 相对大小

[java] view plain copy print ?
  1. privatevoidsetRelativeFontSpan(){
  2. SpannableStringspanString=newSpannableString("字体相对大小");
  3. spanString.setSpan(newRelativeSizeSpan(2.5f),0,6,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
  4. tv.append(spanString);
  5. }

5) TypefaceSpan 文本字体

[html] view plain copy print ?
  1. privatevoidsetTypefaceSpan(){
  2. SpannableStringspanString=newSpannableString("文本字体");
  3. spanString.setSpan(newTypefaceSpan("monospace"),0,4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  4. tv.append(spanText);
  5. }


6) URLSpan 文本超链接

[java] view plain copy print ?
  1. privatevoidaddUrlSpan(){
  2. SpannableStringspanString=newSpannableString("超链接");
  3. URLSpanspan=newURLSpan("http://www.baidu.com");
  4. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  5. tv.append(spanString);
  6. }


7) ImageSpan 图片

[html] view plain copy print ?
  1. privatevoidaddImageSpan(){
  2. SpannableStringspanString=newSpannableString("");
  3. Drawabled=getResources().getDrawable(R.drawable.ic_launcher);
  4. d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
  5. ImageSpanspan=newImageSpan(d,ImageSpan.ALIGN_BASELINE);
  6. spanString.setSpan(span,0,1,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  7. tv.append(spanString);
  8. }

8) ClickableSpan 文本有点击事件

[html] view plain copy print ?
  1. privateTextViewtextView;
  2. textView=(TextView)this.findViewById(R.id.textView);
  3. Stringtext="显示Activity";
  4. SpannableStringspannableString=newSpannableString(text);
  5. spannableString.setSpan(newClickableSpan(){
  6. @Override
  7. publicvoidonClick(Viewwidget){
  8. Intentintent=newIntent(Main.this,OtherActivity.class);
  9. startActivity(intent);
  10. }
  11. //表示点击整个text的长度都有效触发这个事件
  12. },0,text.length(),Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  13. textView.setText(spannableString);
  14. textView.setMovementMethod(LinkMovementMethod.getInstance());


9) UnderlineSpan 下划线

[html] view plain copy print ?
  1. privatevoidaddUnderLineSpan(){
  2. SpannableStringspanString=newSpannableString("下划线");
  3. UnderlineSpanspan=newUnderlineSpan();
  4. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  5. tv.append(spanString);
  6. }

10) StrikethroughSpan 删除线

[html] view plain copy print ?
  1. privatevoidaddStrikeSpan(){
  2. SpannableStringspanString=newSpannableString("删除线");
  3. StrikethroughSpanspan=newStrikethroughSpan();
  4. spanString.setSpan(span,0,3,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  5. tv.append(spanString);
  6. }


11) SuggestionSpan 相当于占位符

12) MaskFilterSpan 修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)

13) RasterizerSpan 光栅效果

14) AbsoluteSizeSpan 绝对大小(文本字体)

[html] view plain copy print ?
  1. privatevoidsetAbsoluteFontSpan(){
  2. SpannableStringspannableString=newSpannableString("40号字体");
  3. AbsoluteSizeSpanabsoluteSizeSpan=newAbsoluteSizeSpan(40);
  4. spannableString.setSpan(absoluteSizeSpan,0,5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
  5. editText.append(spannableString);
  6. }

15) DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。

16) TextAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)

[html] view plain copy print ?
  1. privatevoidsetTextAppearanceSpan(){
  2. SpannableStringspanString=newSpannableString("文本外貌");
  3. TextAppearanceSpantextAppearanceSpan=newTextAppearanceSpan(this,android.R.style.TextAppearance_Medium);
  4. spanString.setSpan(textAppearanceSpan,0,4,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  5. tv.append(spanString);
  6. }

更多相关文章

  1. android webview字体大小的控制
  2. android中添加arial字体(非android默认字体)
  3. TextView字体逐渐变淡点以及程序特定listView一个item以及 背景
  4. Android 控件之八:AutoCompleteTextView自动完成文本框
  5. Android TextView 一些字体颜色、大小设置属性
  6. Android Studio设置界面风格和字体大小
  7. android根据字体大小设置控件高度
  8. 安卓开发09:常用控件-TextView文本展示
  9. Android 开发中怎么使用自定义字体?

随机推荐

  1. android根据应用方向自动旋转的自定义vie
  2. Android录音及播放功能实现
  3. Android 文件操作工具类
  4. Unity3d 调用Android震动
  5. Android通过Mainfest设置Theme实现布局全
  6. Android 开发艺术探索 源码地址
  7. android Error inflating class com.goog
  8. Android 自定义控件 按钮滚动选择
  9. Android ExpandableListView 可展开的Lis
  10. Android(安卓)关机流程分析-----(1)Framewo