TextView文本显示相关

TextView showTv=new TextView(this);
SpannableString sp=new SpannableString("文本内容文本内容文本内容文本内容文本内容文本内容文本内容");

Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)
Spanned.SPAN_INCLUSIVE_EXCLUSIVE(前面包括,后面不包括)
Spanned.SPAN_EXCLUSIVE_INCLUSIVE(前面不包括,后面包括)
Spanned.SPAN_INCLUSIVE_INCLUSIVE(前后都包括)

可选属性如下
//设置背景色
sp.setSpan(new BackgroundColorSpan(Color.RED),0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置文本颜色
sp.setSpan(new ForegroundColorSpan(Color.GREEN),6,sp.length()-1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//MaskFilterSpan修饰效果,如模糊(BlurMaskFilter)、浮雕(EmbossMaskFilter)
sp.setSpan(new BlurMaskFilter(3, BlurMaskFilter.Blur.NORMAL),1,2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
sp.setSpan(new EmbossMaskFilter(new float[]{1,1,3}, 1.5f, 8, 3),2,3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//光栅效果
sp.setSpan(new RasterizerSpan(new Rasterizer()),3,4,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//删除线
sp.setSpan(new StrikethroughSpan(),4,5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//下划线
sp.setSpan(new UnderlineSpan(),5,6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//绝对大小(文本字体)
sp.setSpan(new AbsoluteSizeSpan(20,true),6,7,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//相对大小
sp.setSpan(new RelativeSizeSpan(2.5f), 3, 4,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//若需使用自定义字体,可能要重写类TypefaceSpan
sp.setSpan(new TypefaceSpan("monospace"), 3, 10,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//字体样式:粗体、斜体等
sp.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 3, 7,Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//extAppearanceSpan 文本外貌(包括字体、大小、样式和颜色)
sp.setSpan(new TextAppearanceSpan(this, android.R.style.TextAppearance_Medium), 6, 7, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//设置图片,基于文本基线或底部对齐。
DynamicDrawableSpan drawableSpan=new DynamicDrawableSpan() {
    @Override
    public Drawable getDrawable() {
        Drawable drawable=getResources().getDrawable(R.mipmap.ic_launcher);
        drawable.setBounds(0, 0, 50, 50);
        return drawable;
    }
};
sp.setSpan(drawableSpan,8,9,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//图片
sp.setSpan(new ImageSpan(getResources().getDrawable(R.mipmap.ic_launcher)), 3, 4, Spannable.SPAN_INCLUSIVE_EXCLUSIVE);
//设置超链接
sp.setSpan(new URLSpan("http://www.baidu.com"), 6, sp.length() - 1, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置部分文字的点击事件
sp.setSpan(new ClickableSpan() {
    @Override
    public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
    }
    @Override
    public void onClick(View widget) {
        Log.e("tag","你点击了我");
    }
},6, sp.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
//设置URLSpan可点击
showTv.setMovementMethod(LinkMovementMethod.getInstance());

//将文本显示在控件上
showTv.setText(sp);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值