TextView中部份內容的特殊需求實現

前言

關於TextView這個控件,你們應該是很是熟悉了,咱們平時都會對它的大小,顏色等屬性作設置,也只要在佈局的xml裏面設置一下sizecolor就行了,可是我相信你們都有第一次遇到被要求單獨修改一個TextView裏面的文本的顏色,大小的要求,第一反應是what?how can?。由於TextView裏面的內容在印象之中都是全部內容一塊兒變大變小,變顏色的,那麼今天我就介紹兩種方案去解決這個問題。html

正文

方案一

//兩次加大字體,設置字體爲紅色(big會加大字號,font能夠定義顏色)  
textView.setText(Html.fromHtml("我後面的字會變化,<font color='#ff0000'><big><big>我會變大並且變紅</big></big></font>口罩"));

就像上面的代碼的方式,你們能夠看到咱們採用的是html的內容方式填入textView,固然這裏的標籤還可使用h1~h6html裏面的標題的標籤,不過請留意,這標題的標籤不止會改變大小,還會換行,詳情請了解html中啥叫塊狀元素,這裏不展開。佈局

方案二

//設置字體大小爲58(單位爲物理像素),設置字體爲紅色,字體背景爲黃色  
textView3.setText("咱們指望改變後面內容,改變的內容");  
Spannable span = new SpannableString(textView3.getText());  
span.setSpan(new AbsoluteSizeSpan(58), 11, 16, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
span.setSpan(new ForegroundColorSpan(Color.RED), 11, 16, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
span.setSpan(new BackgroundColorSpan(Color.YELLOW), 11, 16, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);  
textView3.setText(span);

此次咱們經過Spannable來實現,能夠把「改變的內容」這5個字的大小改成58,顏色變紅,背景變黃。關於Spannable你們能夠去百度有多少種類型,我只演示了三種,還有一個細節,這裏範圍是左開右閉(就是11,16)實際改變的內容位置就是12,13,14,15,16不包括11,這裏請你們留意一下。字體

總結

至此咱們能夠對TextView的部份內容的需求玩的很6了,至於兩個方案,我的以爲Spannable會更靈活一些,哈哈,今天你吃成長快樂了嗎??,bye。spa

相關文章
相關標籤/搜索