Android TextView 设置文字背景色或文字颜色,字体阴影,字体样式

public void onClick(View widget) {

Toast.makeText(MainActivity.this, “click”, Toast.LENGTH_SHORT).show();

Log.e(“Easy”, “click”);

}

};

spannableString.setSpan(clickableSpan, 7, 11, Spannable.SPAN_INCLUSIVE_INCLUSIVE) ;

textView3.setMovementMethod(LinkMovementMethod.getInstance());

textView3.append(“\n3”);

textView3.append(spannableString);

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

int length = spannableString.length();

//模糊(BlurMaskFilter)

MaskFilterSpan maskFilterSpan = new MaskFilterSpan(new BlurMaskFilter(3, BlurMaskFilter.Blur.OUTER));

spannableString.setSpan(maskFilterSpan, 0, length - 10, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

//浮雕(EmbossMaskFilter)

maskFilterSpan = new MaskFilterSpan(new EmbossMaskFilter(new float[]{1,1,3}, 1.5f, 8, 3));

spannableString.setSpan(maskFilterSpan, length - 10, length, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n4”);

textView3.append(spannableString);

// 5、MetricAffectingSpan 父类,一般不用

// RasterizerSpan 光栅效果

// spannableString.setSpan(new RasterizerSpan(), 0, 7, Spannable.

// SPAN_INCLUSIVE_EXCLUSIVE);

// textView3.append(“\n”);

// textView3.append(spannableString);

// 7StrikethroughSpan 删除线(中划线)

spannableString.setSpan(new StrikethroughSpan(), 0, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n7”);

textView3.append(spannableString);

// 8、SuggestionSpan

// 相当于占位符,一般用在EditText输入框中。当双击此文本时,会弹出提示框选择一些建议(推荐的)文字,选中的文本将替换此占位符。在输入法上用的较多。

// PS:API 14新增,暂无示例。

//9UnderlineSpan 下划线

spannableString.setSpan(new UnderlineSpan(), 0, spannableString.length(),

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n9”);

textView3.append(spannableString);

// 10AbsoluteSizeSpan 绝对大小(文本字体)

spannableString.setSpan(new AbsoluteSizeSpan(20, true), 0, 7,

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n10”);

textView3.append(spannableString);

// 11、DynamicDrawableSpan 设置图片,基于文本基线或底部对齐。

DynamicDrawableSpan drawableSpan =

new DynamicDrawableSpan(DynamicDrawableSpan.ALIGN_BASELINE) {

@Override

public Drawable getDrawable() {

Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);

d.setBounds(0, 0, 50, 50);

return d;

}

};

DynamicDrawableSpan drawableSpan2 = new DynamicDrawableSpan(

DynamicDrawableSpan.ALIGN_BOTTOM) {

@Override

public Drawable getDrawable() {

Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);

d.setBounds(0, 0, 50, 50);

return d;

}

};

spannableString.setSpan(drawableSpan, 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

spannableString.setSpan(drawableSpan2, 7, 8, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n11”);

textView3.append(spannableString);

// 12ImageSpan 图片

Drawable d = getResources().getDrawable(R.mipmap.ic_launcher);

d.setBounds(0, 0, 50, 50);

spannableString.setSpan(new ImageSpan(d), 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n12”);

textView3.append(spannableString);

//13、RelativeSizeSpan 相对大小(文本字体)

//参数proportion:比例大小

spannableString.setSpan(new RelativeSizeSpan(2.5f), 3, 4,

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n13”);

textView3.append(spannableString);

// 14、ReplacementSpan 父类,一般不用

// 15、ScaleXSpan 基于x轴缩放

// 参数proportion:比例大小

spannableString.setSpan(new ScaleXSpan(3.8f), 3, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n15”);

textView3.append(spannableString);

// 16、StyleSpan 字体样式:粗体、斜体等

//Typeface.BOLD_ITALIC:粗体+斜体

spannableString.setSpan(new StyleSpan(Typeface.BOLD), 3, 7,

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n16”);

textView3.append(spannableString);

// 17、SubscriptSpan 下标(数学公式会用到)

spannableString.setSpan(new SubscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n17”);

textView3.append(spannableString);

// 18、SuperscriptSpan 上标(数学公式会用到)

spannableString.setSpan(new SuperscriptSpan(), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n18”);

textView3.append(spannableString);

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

//若需自定义TextAppearance,可以在系统样式上进行修改

spannableString.setSpan(new TextAppearanceSpan(this, android.R.style.TextAppearance_Medium),

6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n19”);

textView3.append(spannableString);

// 20、TypefaceSpan 文本字体

//若需使用自定义字体,可能要重写类TypefaceSpan

spannableString.setSpan(new TypefaceSpan(“monospace”), 3, 10,

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.append(“\n20”);

textView3.append(spannableString);

// 21、URLSpan 文本超链接

spannableString.setSpan(new URLSpan(“http://orgcent.com”), 10, spannableString.length(),

Spannable.SPAN_INCLUSIVE_EXCLUSIVE);

textView3.setMovementMethod(new LinkMovementMethod());

textView3.append(“\n21”);

textView3.append(spannableString);

//让URLSpan可以点击

}

部分字体着色

代码:

String sms = “审计系统在线”;

String sjs = “审计系统在线”;

int fstart = 4;

int fend = 6;

if (sms.contains(“在线”)) {

SpannableStringBuilder style = new SpannableStringBuilder(sms);

style.setSpan(new ForegroundColorSpan(Color.rgb(166, 116, 50)), fstart, fend, Spannable.SPAN_EXCLUSIVE_INCLUSIVE);

nethomesmstatus.setText(style);

} else {

nethomesmstatus.setText(sms);

}

效果:

字体阴影

textView.setShadowLayer(2,6,20,R.color.colorPrimary);//清晰度,偏移量,最后一个无效参数

字体样式

字体类型

Typeface.DEFAULT:默认字体,常规字体类型

Typeface.DEFAULT_BOLD:黑体字体类型

Typeface.MONOSPACE:等宽字体类型

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值