一個字符串不同大小顏色的處理MainActivity

String actualPrice = "¥69/天";
String originalPrice = "原價¥266";
SpannableString ss = new SpannableString(actualPrice);
ss.setSpan(new RelativeSizeSpan(0.5f),0,1,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new AbsoluteSizeSpan(20,true),1,3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
ss.setSpan(new ForegroundColorSpan(Color.parseColor("#FD453A")),0,3,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
tv_show3.setText(ss);

    SpannableString bb = new SpannableString(originalPrice);
    bb.setSpan(new ForegroundColorSpan(Color.parseColor("#80222222")),0,6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    bb.setSpan(new StrikethroughSpan(),2,6,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    tv_show4.setText(bb);




    //創(chuàng)建一個 SpannableString對象
    msp = new SpannableString("字體測試字體大小一半兩倍前景色背景色正常粗體斜體粗斜體下劃線刪除線x8x3電話郵件網(wǎng)站短信彩信地圖X軸綜合/bot");

    //設(shè)置字體(default,default-bold,monospace,serif,sans-serif)
    msp.setSpan(new TypefaceSpan("monospace"), 0, 2, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    msp.setSpan(new TypefaceSpan("serif"), 2, 4, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //設(shè)置字體大小(絕對值,單位:像素)
    msp.setSpan(new AbsoluteSizeSpan(20), 4, 6, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    msp.setSpan(new AbsoluteSizeSpan(20, true), 6, 8, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //第二個參數(shù)boolean dip惩猫,如果為true箱蝠,表示前面的字體大小單位為dip,否則為像素,同上绑莺。

    //設(shè)置字體大猩徊(相對值,單位:像素) 參數(shù)表示為默認(rèn)字體大小的多少倍
    msp.setSpan(new RelativeSizeSpan(0.5f), 8, 10, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //0.5f表示默認(rèn)字體大小的一半
    msp.setSpan(new RelativeSizeSpan(2.0f), 10, 12, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默認(rèn)字體大小的兩倍

    //設(shè)置字體前景色
    msp.setSpan(new ForegroundColorSpan(Color.MAGENTA), 12, 15, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設(shè)置前景色為洋紅色

    //設(shè)置字體背景色
    msp.setSpan(new BackgroundColorSpan(Color.CYAN), 15, 18, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //設(shè)置背景色為青色

    //設(shè)置字體樣式正常,粗體捕虽,斜體慨丐,粗斜體
    msp.setSpan(new StyleSpan(Typeface.NORMAL), 18, 20, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //正常
    msp.setSpan(new StyleSpan(Typeface.BOLD), 20, 22, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗體
    msp.setSpan(new StyleSpan(Typeface.ITALIC), 22, 24, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //斜體
    msp.setSpan(new StyleSpan(Typeface.BOLD_ITALIC), 24, 27, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //粗斜體

    //設(shè)置下劃線
    msp.setSpan(new UnderlineSpan(), 27, 30, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //設(shè)置刪除線
    msp.setSpan(new StrikethroughSpan(), 30, 33, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

    //設(shè)置上下標(biāo)
    msp.setSpan(new SubscriptSpan(), 34, 35, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //下標(biāo)
    msp.setSpan(new SuperscriptSpan(), 36, 37, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //上標(biāo)

    //超級鏈接(需要添加setMovementMethod方法附加響應(yīng))
    msp.setSpan(new URLSpan("tel:10086"), 37, 39, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //電話
    msp.setSpan(new URLSpan("123456789@qq.com"), 39, 41, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //郵件
    msp.setSpan(new URLSpan("http://www.baidu.com "), 41, 43, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //網(wǎng)絡(luò)
    msp.setSpan(new URLSpan("sms:10086"), 43, 45, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //短信 使用sms:或者smsto:
    msp.setSpan(new URLSpan("mms:10086"), 45, 47, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //彩信 使用mms:或者mmsto:
    msp.setSpan(new URLSpan("geo:38.899533,-77.036476"), 47, 49, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //地圖
    //設(shè)置字體大小(相對值,單位:像素) 參數(shù)表示為默認(rèn)字體寬度的多少倍
    msp.setSpan(new ScaleXSpan(2.0f), 49, 51, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); //2.0f表示默認(rèn)字體寬度的兩倍薯鳍,即X軸方向放大為默認(rèn)字體的兩倍咖气,而高度不變
    //設(shè)置字體(依次包括字體名稱,字體大小挖滤,字體樣式崩溪,字體顏色,鏈接顏色)
    ColorStateList csllink = null;
    ColorStateList csl = null;

// @SuppressLint("ResourceType") XmlResourceParser xppcolor = getResources().getXml(R.color.color);
// try {
// csl = ColorStateList.createFromXml(getResources(), xppcolor);
// } catch (XmlPullParserException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }

// @SuppressLint("ResourceType") XmlResourceParser xpplinkcolor = getResources().getXml(R.color.linkcolor);
// try {
// csllink = ColorStateList.createFromXml(getResources(), xpplinkcolor);
// } catch (XmlPullParserException e) {
// e.printStackTrace();
// } catch (IOException e) {
// e.printStackTrace();
// }

    msp.setSpan(new TextAppearanceSpan("monospace",android.graphics.Typeface.BOLD_ITALIC, 30, csl, csllink), 51,
            53, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    //設(shè)置項目符號
    msp.setSpan(new BulletSpan(android.text.style.BulletSpan.STANDARD_GAP_WIDTH, Color.GREEN),0 ,msp.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
    //<span style="font-family: Arial;"> //第一個參數(shù)表示項目符號占用的寬度斩松,第二個參數(shù)為項目符號的顏色 </span>


    //設(shè)置圖片
    // Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
    // drawable.setBounds(0, 0, drawable.getIntrinsicWidth(), drawable.getIntrinsicHeight());
    // msp.setSpan(new ImageSpan(drawable), 53, 57, Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);


    tv_show2.setText(msp);
    tv_show2.setMovementMethod(LinkMovementMethod.getInstance());
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末伶唯,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子惧盹,更是在濱河造成了極大的恐慌乳幸,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钧椰,死亡現(xiàn)場離奇詭異粹断,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)嫡霞,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評論 3 393
  • 文/潘曉璐 我一進(jìn)店門瓶埋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人诊沪,你說我怎么就攤上這事养筒。” “怎么了端姚?”我有些...
    開封第一講書人閱讀 163,624評論 0 353
  • 文/不壞的土叔 我叫張陵晕粪,是天一觀的道長。 經(jīng)常有香客問我渐裸,道長巫湘,這世上最難降的妖魔是什么装悲? 我笑而不...
    開封第一講書人閱讀 58,356評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮剩膘,結(jié)果婚禮上衅斩,老公的妹妹穿的比我還像新娘。我一直安慰自己怠褐,他們只是感情好畏梆,可當(dāng)我...
    茶點故事閱讀 67,402評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著奈懒,像睡著了一般奠涌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磷杏,一...
    開封第一講書人閱讀 51,292評論 1 301
  • 那天溜畅,我揣著相機(jī)與錄音,去河邊找鬼极祸。 笑死慈格,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的遥金。 我是一名探鬼主播浴捆,決...
    沈念sama閱讀 40,135評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼稿械!你這毒婦竟也來了选泻?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,992評論 0 275
  • 序言:老撾萬榮一對情侶失蹤美莫,失蹤者是張志新(化名)和其女友劉穎页眯,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體厢呵,經(jīng)...
    沈念sama閱讀 45,429評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡窝撵,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,636評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了襟铭。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忿族。...
    茶點故事閱讀 39,785評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖蝌矛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情错英,我是刑警寧澤入撒,帶...
    沈念sama閱讀 35,492評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站椭岩,受9級特大地震影響茅逮,放射性物質(zhì)發(fā)生泄漏璃赡。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,092評論 3 328
  • 文/蒙蒙 一献雅、第九天 我趴在偏房一處隱蔽的房頂上張望碉考。 院中可真熱鬧,春花似錦挺身、人聲如沸侯谁。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,723評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽墙贱。三九已至,卻和暖如春贱傀,著一層夾襖步出監(jiān)牢的瞬間惨撇,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,858評論 1 269
  • 我被黑心中介騙來泰國打工府寒, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留魁衙,地道東北人。 一個月前我還...
    沈念sama閱讀 47,891評論 2 370
  • 正文 我出身青樓株搔,卻偏偏與公主長得像剖淀,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子邪狞,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,713評論 2 354

推薦閱讀更多精彩內(nèi)容