一、設定部分字型的顏色
通過
SpannableStringBuilder style = new SpannableStringBuilder(CharSequence cs);
style.setSpan(new ForegroundColorSpan(color), begin, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
tv.setText(style);
設定,由於此種方法比較複雜,我實現了一個輔助類,能夠快速實現部分字型的顏色;
final class TextViewUtil{public static CharSequence setTextColor(CharSequence str,int begin,int end,int color){SpannableStringBuilder style = new SpannableStringBuilder(str);style.setSpan(new ForegroundColorSpan(color), begin, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);return style;} }
測試代碼:
package org.xiazdong;import android.app.Activity;import android.graphics.Color;import android.os.Bundle;import android.text.Spannable;import android.text.SpannableStringBuilder;import android.text.style.ForegroundColorSpan;import android.widget.TextView;public class MainActivity extends Activity {private TextView tv;@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); tv = (TextView)findViewById(R.id.tv); String str = "hello,xiazdong"; CharSequence cq = TextViewUtil.setTextColor(str, 0, 2, Color.RED); cq = TextViewUtil.setTextColor(cq, 2, 5, Color.GREEN); tv.setText(cq); }}
實現效果:
二、實現跑馬燈效果(滾動字幕)
在main.xml布局檔案的<TextView>中設定如下:
android:singleLine="true" android:focusable="true" android:ellipsize="marquee" android:marqueeRepeatLimit="marquee_forever" android:focusableInTouchMode="true"
實現效果:
三、實現超鏈
在<TextView>中設定如下:
android:autolink="all",則如果TextView中字串為“hello,xiazdong's blog:http://blog.csdn.net/xiazdong, phone:12345678901”
則會自動識別 http://blog.csdn.net/xiazdong和12345678901;