1. 程式人生 > >android 中TextView設定部分文字背景色和文字顏色

android 中TextView設定部分文字背景色和文字顏色

通過SpannableStringBuilder來實現,它就像html裡邊的元素改變指定文字的文字顏色或背景色

public class MainActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        String str="這是設定TextView部分文字背景顏色和前景顏色的demo!";
        int bstart=str.indexOf("背景");
        int bend=bstart+"背景".length();
        int fstart=str.indexOf("前景");
        int fend=fstart+"前景".length();
        SpannableStringBuilder style=new SpannableStringBuilder(str); 
        style.setSpan(new BackgroundColorSpan(Color.RED),bstart,bend,Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);   
        style.setSpan(new ForegroundColorSpan(Color.RED),fstart,fend,Spannable.SPAN_EXCLUSIVE_INCLUSIVE); 
        TextView tvColor=(TextView) findViewById(R.id.tv_color);
        tvColor.setText(style);
    }

}

專案中程式碼:
//textview 設定部分顏色
	public SpannableStringBuilder  setPartColorText(String str){
		//使用SpannableStringBuilder類
		SpannableStringBuilder spannableStringBuilder=new SpannableStringBuilder(str);
		//確定部分顏色的位置
		int start=str.indexOf(content);
		int end=start+content.length();
		//確定顏色為紅色
		ForegroundColorSpan mForeColor=new ForegroundColorSpan(Color.RED);
		//setspan
		spannableStringBuilder.setSpan(mForeColor, start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
		
		return spannableStringBuilder;
	}

AbsoluteSizeSpan(int size) ---- 設定字型大小,引數是絕對數值,相當於Word中的字型大小

RelativeSizeSpan(float proportion) ---- 設定字型大小,引數是相對於預設字型大小的倍數,比如預設字型大小是x, 那麼設定後的字型大小就是x*proportion,這個用起來比較靈活,proportion>1就是放大(zoom in), proportion<1就是縮小(zoom out)
ScaleXSpan(float proportion) ---- 縮放字型,與上面的類似,預設為1,設定後就是原來的乘以proportion,大於1時放大(zoon in),小於時縮小(zoom out)

BackgroundColorSpan(int color) ----背景著色,引數是顏色數值,可以直接使用android.graphics.Color裡面定義的常量,或是用Color.rgb(int, int, int)

ForegroundColorSpan(int color) ----前景著色,也就是字的著色,引數與背景著色一致TypefaceSpan(String family) ----字型,引數是字型的名字比如“sans", "sans-serif"等StyleSpan(Typeface style) -----字型風格,比如粗體,斜體,引數是android.graphics.Typeface裡面定義的常量,如Typeface.BOLD,Typeface.ITALIC等等。

StrikethroughSpan----如果設定了此風格,會有一條線從中間穿過所有的字,就像被劃掉一樣


相關推薦

android TextView設定部分文字景色文字顏色

通過SpannableStringBuilder來實現,它就像html裡邊的元素改變指定文字的文字顏色或背景色 public class MainActivity extends Activity

android TextView 設定部分文字景色文字顏色

通過SpannableStringBuilder來實現,它就像html裡邊的元素改變指定文字的文字顏色或背景色 public class MainActivity extends Activity { @Override protected void onCreate(Bund

IOS 設定Section的景色字型顏色

- (void)tableView:(UITableView *)tableView willDisplayHeaderView:(UIView *)view forSection:(NSInteger)section {     // 設定section背景顏色     view.tintColor = [

Eclipse詳細設定護眼景色字型顏色並匯出

Eclipse是一款碼農們喜聞樂見的整合開發平臺,但是其預設的主題和慘白的背景色實在是太刺激眼球了。下面,將給大家詳細介紹如何設定成護眼主題的方法,也做個拋磚引玉,希望能有更多的主題出現在Eclipse的大家庭中。 隨後,本文將介紹如何將設定好的主題匯出儲存,用於重灌系統或者分享給朋友。 最後,介紹三種

Android TextView 設定文字景色文字顏色

String str="這是設定TextView部分文字背景顏色和前景顏色的demo!"; int bstart=str.indexOf("背景"); int bend=bstart+"背景".length(); int fstart=str.indexOf("前景")

SecureCR 改變景色文字顏色

global ESS img bold linu 文件 info 快捷 就是 1.打開SecureCR鏈接Linux服務器,Options->Session Options->Emulation->Terminal 選擇Linux (相應的服務器系統)AN

Qt使用Qss修改邊框寬度,字型顏色,修改選擇時景色字型顏色

以Dialog為例 setStyleSheet("QDialog {border: 1px solid #CCCCCC;}"); 以LineEdit為例 setStyleSheet("color:white"); 以日曆為例 setStyleSheet(

AndroidTextView居中顯示無效的原因解決方案。

今天在寫程式碼的時候,出現一個Bug,最後解決了,現在記錄下。 自定義了一個佈局控制元件,用於PopupWindow提示郵箱型別,結果顯示的郵箱型別無法居中,剛開始的效果如圖所示: 上面所貼圖片沒有經過處理,其中“@126.com”的文字在白色背景中沒有居中。注:白色

Eclipse詳細設定護眼景色字型(Hermit)顏色並匯出

進入對話方塊後 1、展開General標籤,選中Editors選項,再選中 Test Editors,右邊出現Test Editors面板。 面板中有這樣一個選項:Appearance color options; 其中是各種板塊顏色的設定,其中有一項是background color,根據自己的喜好選擇顏

android 如何設定控制元件的字型背景樣式

1.設定背景圖片,圖片來源於drawable; button.setBackgroundDrawable(getResources().getDrawable(R.drawable.search_l

html,button的景色文字顏色

<button type="button" class="btn" style="background-color: #7ED321;width: 76px;heigh

設定按鈕的景色顏色

先在WM_CREATE或者WM_INITDIALOG訊息裡執行以下語句: //設定按鈕的屬性為可自繪    HWND hBn = GetDlgItem(hDlg, IDOK);    SetWindo

android 一個 textview 設定不同的字型大小顏色

在實際應用中,需要將一個字串已不同的顏色,字型顯示出來。當然完全可以通過不同textview拼接出來。也可以通過一個textview來展示。 步驟如下:      1.定義不同style . 不妨如下定義2個style <style name="s

如何優雅使用Sublime Text3(Sublime設定豆沙綠景色自定義主題)

♣Sublime Text3軟體的下載♣設定字型的大小♣設定背景色和關鍵字顏色(Color Scheme 生成器)♣快速生成html標頭檔案:http://download.csdn.net/detail/sinat_31719925/9684613Sublime Text

UISegmentedControl-更改景色字型顏色

UISegmentedControl在很多的地方都會用到,但是每次修改的時候都不盡人意 比如說 UISegmentedControl有個tintColor屬性 segmentedControl.tintColor = [UIColorredColor]; 結果是

用Blend 修改 WPF ComboBox的景色字型顏色 詳情介紹

Blend是VS 2015中自帶的,所以框架.NET Framework4.5及以上。用Blend開啟頁面1、拖一個下拉框ComboBox,並新增幾項預設值,以方便測試看效果。2、選擇控制元件右鍵或點選左上角的控制元件3、生成全域性的獨立檔案方法如下:4、選擇comboBox

TextView控制元件之部分文字內容設定前景、景色

ForegroundColorSpan 設定前景色 BackgroundColorSpan 設定背景色 ClickSpan 點選效果實現 新增下劃線 StrikethroughSpan 設定刪除線 String content = "花兒

androidTextView部分文字設定超連結樣式並監聽點選事件

package com.example.testandroid1; import android.app.Activity; import android.os.Bundle; import android.text.SpannableString; import and

Android 實現TextView部分文字網路連結及電話號碼點選監聽

前言 最近在寫專案的時候遇到了一個這樣的需求,要像qq一樣,點選評論的者的名字要跳轉評論者的使用者資訊介面,並且點選評論資訊中的web連結要跳轉到WebActivity,同時如果是其他數字的話要像qq一樣點選並顯示底部Dialog提示是播打電話還是複製號碼。 效

Android Material適配 為控制元件設定指定景色點選波紋效果

大部分時候,我們都需要為控制元件設定指定背景色和點選效果 4.x以下可以使用selector,5.0以上需要帶波紋效果,以下是實現該效果的方法。 比如實現Button的Material適配 <Button android:text