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背景色一致.