在TextView使用部分顏色文字

傲慢的上校發表於2013-08-31
/**
	 * change a part of string color.
	 * 
	 * @param string
	 *            whole string.
	 * @param subString
	 *            the sub string need modify color.
	 * @param color
	 *            the the color you want the sub string display. can get like
	 *            {@link Context#getResources()}.getColor(R.color.xxx) or use
	 *            the system {@link Color}.xxx;
	 * @return a spannableStringBuilder(a string after modify substring color).
	 */
	public static SpannableStringBuilder modifyStrColor(String string, String subString, int color) {
		String tipRed = String.format(string, subString);
		int index[] = new int[1];
		index[0] = tipRed.indexOf(subString);
		SpannableStringBuilder style = new SpannableStringBuilder(tipRed);
		style.setSpan(new ForegroundColorSpan(color), index[0],
				index[0] + subString.length(),
				Spannable.SPAN_EXCLUSIVE_INCLUSIVE);
		return style;
	}
           直接使用TextView.setText該方法的返回值即可。

相關文章