Android UI中TextView的使用方法
Android UI中TextView的使用方法
一、TextView不同區(qū)域設(shè)置顏色,大小、點擊事件
String msg = getResources().getString(R.string.school_roll_auth); SpannableStringBuilder style = new SpannableStringBuilder(msg); // 設(shè)置字體顏色 style.setSpan( new ForegroundColorSpan(getResources().getColor( R.color.tv_color_99)), 0, msg.length() - 5, Spannable.SPAN_EXCLUSIVE_INCLUSIVE); style.setSpan( new ForegroundColorSpan(getResources().getColor( R.color.text_blue)), msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); // 設(shè)置字體背景色 style.setSpan( new BackgroundColorSpan(getResources().getColor( R.color.bg_common)), msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); // 設(shè)置可點擊部分 style.setSpan(new ClickableSpan() { @Override public void onClick(View widget) { //do Click .... } @Override public void updateDrawState(TextPaint ds) { super.updateDrawState(ds); ds.setUnderlineText(false); ds.clearShadowLayer(); } }, msg.length() - 5, msg.length(), Spannable.SPAN_EXCLUSIVE_INCLUSIVE); tv_school_roll_msg.setText(style); // 此方法在需要響應(yīng)用戶事件時使用,如點擊一個電話號碼就跳轉(zhuǎn)到撥號頁面。如果不執(zhí)行這個方法是不會響應(yīng)事件的,即便文本看著已經(jīng)是下劃線藍(lán)色字了。 tv_school_roll_msg.setMovementMethod(LinkMovementMethod.getInstance());
//設(shè)置字體不同大小 SpannableStringBuilder sb = new SpannableStringBuilder(numText); sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources() .getDimensionPixelSize(R.dimen.text_size_24)), 0, income.indexOf(".") + 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); sb.setSpan(new AbsoluteSizeSpan(App.getInstance().getResources() .getDimensionPixelSize(R.dimen.text_size_16)), income.indexOf(".") + 1, income.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); view.setText(sb);
注:Spannable.SPAN_EXCLUSIVE_EXCLUSIVE參數(shù)是對區(qū)域的說明,左包含,右不包含 SpannableStringBuilder的append方法
SpannableStringBuilder sb = new SpannableStringBuilder(num); SpannableStringBuilder sbUnitName = sb.append("元"); sbUnitName.setSpan(new AbsoluteSizeSpan(getResources().getDimensionPixelSize(floatSizeResourcesId)), num.length() - 1, num.length() + unitName.length(),Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
append之后數(shù)符索引不是從0開始,是從原始字符開始
如有疑問請留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Windows實現(xiàn)Flutter環(huán)境搭建及配置這一篇就夠了
這篇文章主要介紹了Windows實現(xiàn)Flutter環(huán)境搭建及配置這一篇就夠了,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12Android數(shù)據(jù)庫LitePal的基本用法詳解
這篇文章主要介紹了Android數(shù)據(jù)庫LitePal的基本用法詳解,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-01-01Android 安全加密:消息摘要Message Digest詳解
本文主要介紹Android安全加密消息摘要Message Digest,這里整理了詳細(xì)的資料,并說明如何使用Message Digest 和使用注意事項,有需要的小伙伴可以參考下2016-09-09Android組件間通信--深入理解Intent與IntentFilter
本篇文章是對Android組件間通信Intent與IntentFilter進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05flutter PageView實現(xiàn)左右滑動切換視圖
這篇文章主要為大家詳細(xì)介紹了flutter PageView實現(xiàn)左右滑動切換視圖,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-07-07Android實現(xiàn)史上最簡單自定義開關(guān)按鈕的方法
在平常的開發(fā)中按鈕是經(jīng)常使用到的控件之一,下面這篇文章主要給大家介紹了關(guān)于Android實現(xiàn)史上最簡單自定義開關(guān)按鈕的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04