android_5 修改一个textview中的字符串的颜色
例:Hello World, 欢迎观看《android教程》哈哈!
要求把《android教程》变红,其他为绿
?
给textView定义一个id,定义id的方法:android:id="@+id/tv"
?
android:autoLink="all" 表示web/mail/map之类的都加链接
?
修改main.xml:
?
TextVitwDemoActivity.java:
?
??
?
也可以这样写:
package com.mhm.textView;import android.R.color;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.text.Html;import android.text.Spannable;import android.text.SpannableStringBuilder;import android.text.style.ForegroundColorSpan;import android.widget.TextView;public class TextVitwDemoActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); TextView tv = (TextView)findViewById(R.id.tv); String text = tv.getText().toString(); int tb = text.indexOf("《"); int te = text.indexOf("》") + 1; SpannableStringBuilder style = new SpannableStringBuilder(text); style.setSpan(new ForegroundColorSpan(Color.GREEN), 0, tb, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.RED), tb, te, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); style.setSpan(new ForegroundColorSpan(Color.GREEN), te, text.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); tv.setText(style); }}?这里有个奇怪的地方,int te = text.indexOf("》") + 1
+1必须写在这里,写在下面就不行。。。啥原因?
?
?
?
?