Android TextView使用SpannableStrin

2017-06-27  本文已影响47人  Megamind_China
    SpannableString msp = new SpannableString("登录即同意用户协议");
    ClickableSpan clickableSpan = new ClickableSpan() {
      @Override public void onClick(View textView) {
       // TODO 点击操作
      }

      @Override public void updateDrawState(TextPaint ds) {
        super.updateDrawState(ds);
        ds.setUnderlineText(false);
      }
    };
    msp.setSpan(clickableSpan, 5, 9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//第2,第3两个参数,因需设置,文字范围包含第2个,但不包含第3个
    msp.setSpan(new ForegroundColorSpan(getResources().getColor(R.color.sdzz_agreement_color)), 5,
        9, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);//设置高亮的文字颜色
    textView.setText(msp); //需要设置的TextView
    textView.setMovementMethod(LinkMovementMethod.getInstance());//这个也得设置,不设置点击没效果
  <TextView
      android:id="@+id/textView"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:textColor="#626262"
      android:textColorHighlight="@android:color/white"
      android:textSize="12sp"
      />

如果想点击高亮文字,背景色不发生改变,就设置textColorHIghlight的属性值和TextView背景色一致.

上一篇下一篇

猜你喜欢

热点阅读