android SpannableStringBuilder 文字下换线 点击 颜色等 简单实现

第一步 一个textview布局 在xml 

   <com.founder.liangshanfabu.widget.TypefaceTextView
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:id="@+id/dy"

            android:layout_width="wrap_content"
            android:layout_height="wrap_content"

            android:text=""
            android:textColor="@color/text_color_333"
            android:textSize="15sp" />

第二 是我们的activiy 

    SpannableStringBuilder spannable = new SpannableStringBuilder(
                "根据相关法律法规要求,我们更新完善了《用户服务协议》和《隐私政策》,建议您仔细阅读相关条款。在您同意并接受后,将可以正常使用凉山日报为您提供的全部功能。");
        //设置文字的前景色
        spannable.setSpan(new TextClick(),18,26, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        //这个一定要记得设置,不然点击不生效
        dy.setMovementMethod(LinkMovementMethod.getInstance());
        spannable.setSpan(new TextClicks(),27,33 , Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
        spannable.setSpan(new UnderlineSpan(), 18, 26,
                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        spannable.setSpan(new UnderlineSpan(), 27, 33,
                Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

        dy.setText(spannable);
   private class TextClick extends ClickableSpan {
        @Override
        public void onClick(View widget) {
            dy.setHighlightColor(getResources().getColor(R.color.white));
            Intent intent = new Intent(FirstpopActivity.this, XyActivity.class);
            startActivity(intent);
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            ds.setColor(getResources().getColor(R.color.theme_color));
        }
    }

    private class TextClicks extends ClickableSpan {
        @Override
        public void onClick(View widget) {
            dy.setHighlightColor(getResources().getColor(R.color.white));
            Intent intent = new Intent(FirstpopActivity.this, ZCActivity.class);
            startActivity(intent);
        }

        @Override
        public void updateDrawState(TextPaint ds) {
            ds.setColor(getResources().getColor(R.color.theme_color));
        }
    }

这里是多文字 两处变颜色 点击 下划线等

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值