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



二:这个是可可扩展类:

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);
	}
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值