ForegroundColorSpan,为文本设置部分颜色
/** * 设置部分字体颜色 */ public void setTextColor(){ SpannableString spannableString = new SpannableString(tvSpan.getText().toString().trim()); ForegroundColorSpan colorSpan = new ForegroundColorSpan(Color.parseColor("#0099EE")); spannableString.setSpan(colorSpan,5,spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tvSpan.setText(spannableString); }
/** * 设置部分字体背景色 */ public void setBackgroundColorSpan(){ SpannableString spannableString = new SpannableString(tvSpan.getText().toString().trim()); BackgroundColorSpan colorSpan = new BackgroundColorSpan(Color.parseColor("#AC00FF30")); spannableString.setSpan(colorSpan,5,spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tvSpan.setText(spannableString); }
/** * 设置文字相对大小 */ public void setRelativeSizeSpan(){ SpannableString spannableString = new SpannableString(tvSpan.getText().toString().trim()); RelativeSizeSpan sizeSpan1 = new RelativeSizeSpan(1.2f); RelativeSizeSpan sizeSpan2 = new RelativeSizeSpan(1.4f); RelativeSizeSpan sizeSpan3 = new RelativeSizeSpan(1.6f); RelativeSizeSpan sizeSpan4 = new RelativeSizeSpan(1.8f); RelativeSizeSpan sizeSpan5 = new RelativeSizeSpan(1.6f); RelativeSizeSpan sizeSpan6 = new RelativeSizeSpan(1.4f); RelativeSizeSpan sizeSpan7 = new RelativeSizeSpan(1.2f); RelativeSizeSpan sizeSpan8 = new RelativeSizeSpan(1.0f); RelativeSizeSpan sizeSpan9 = new RelativeSizeSpan(0.8f); spannableString.setSpan(sizeSpan1,0,1, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan2,1,2, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan3,2,3, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan4,3,4, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan5,4,5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan6,5,6, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan7,6,7, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan8,7,8, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(sizeSpan9,8,9, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tvSpan.setText(spannableString); }
/** * 为文本设置中划线,也就是常说的删除线 */ private void setStrikethroughSpan(){ SpannableString spannableString = new SpannableString(tvSpan.getText().toString().trim()); StrikethroughSpan colorSpan = new StrikethroughSpan(); spannableString.setSpan(colorSpan,5,spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tvSpan.setText(spannableString); }
/** * 为文本设置下划线,具体实现方法 */ private void setUnderlineSpan(){ SpannableString spannableString = new SpannableString(tvSpan.getText().toString().trim()); UnderlineSpan colorSpan = new UnderlineSpan(); spannableString.setSpan(colorSpan,5,spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tvSpan.setText(spannableString); }
/** * 为文字设置风格(粗体、斜体) */ private void setStyleSpan(){ SpannableString spannableString = new SpannableString("这是粗体,这是斜体"); StyleSpan colorSpan = new StyleSpan(Typeface.BOLD); StyleSpan colorSpanit = new StyleSpan(Typeface.ITALIC); spannableString.setSpan(colorSpan,3,5, Spanned.SPAN_INCLUSIVE_EXCLUSIVE); spannableString.setSpan(colorSpanit,7,spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tvSpan.setHighlightColor(Color.parseColor("#36969696")); tvSpan.setText(spannableString); }
/** * 设置文本中添加图片表情 */ public void setImageSpan(){ SpannableString spannableString = new SpannableString("这是粗体,这是斜体"); Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher); drawable.setBounds(0,0,42,42); ImageSpan imageSpan=new ImageSpan(drawable); spannableString.setSpan(imageSpan,5,spannableString.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE); tvSpan.setText(spannableString); }