android之TextView部分本文变颜色,并设置文本监听器

android之TextView部分本文变颜色,并设置文本监听器_第1张图片

android之TextView部分本文变颜色,并设置文本监听器_第2张图片


二:这个是可可扩展类:

package com.wangzhi.view;

import android.text.SpannableString;
import android.text.Spanned;
import android.text.TextPaint;
import android.text.method.LinkMovementMethod;
import android.text.style.ClickableSpan;
import android.view.View;
import android.widget.TextView;

import com.wangzhi.mallLib.MaMaHelp.utils.Tools;

/***
 * 字体颜色变色,点击颜色跳转
 * 
 * @author zhongwr
 * @update 2015年12月23日 下午2:52:41
 */
public class TextViewClickableSpan extends ClickableSpan {

	/** 变颜色的字体内容 **/
	private String content;
	/** 监听view回调 */
	private OnViewClickListener onClickListener;
	/** 字体颜色 */
	private int textViewColor = -1;

	public TextViewClickableSpan(String content) {
		super();
		this.content = content;
	}

	public TextViewClickableSpan(String content, int textViewColor) {
		this(content);
		this.textViewColor = textViewColor;
	}

	public TextViewClickableSpan(String content, OnViewClickListener onClickListener) {
		this(content);
		this.onClickListener = onClickListener;
	}

	public TextViewClickableSpan(String content, int textViewColor, OnViewClickListener onClickListener) {
		this(content, textViewColor);
		this.onClickListener = onClickListener;
	}

	/***
	 * 
	 * @description 追加可点击,变色的文本内容
	 * @author zhongwr
	 * @params textView 追加在这个textView后边
	 * @update 2015年12月23日 下午3:22:00
	 */
	public void append(TextView textView) {
		if (!Tools.isEmpty(content) && null != textView) {
			SpannableString spanttt = new SpannableString(content);
			spanttt.setSpan(this, 0, content.length(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
			textView.append(content);
			textView.setMovementMethod(LinkMovementMethod.getInstance());
		}
	}

	/**
	 * 字体颜色
	 */
	@Override
	public void updateDrawState(TextPaint ds) {
		if (-1 != textViewColor) {
			ds.setColor(textViewColor);
		}
	}

	@Override
	public void onClick(View widget) {
		if (null != onClickListener) {
			onClickListener.onClick(widget);
		}
	}

	public interface OnViewClickListener {
		public void onClick(View view);
	}
}



你可能感兴趣的:(android之TextView部分本文变颜色,并设置文本监听器)