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

第一步 一个textview布局 在xml 

   

第二 是我们的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));
        }
    }

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

你可能感兴趣的:(android SpannableStringBuilder 文字下换线 点击 颜色等 简单实现)