2.2 TextView

1.常用屬性

? ? ? ? ?字間距:textScaleX(控制文本水平方向的縮放,默認值1.0f)

? ? ? ? ?行間距:lineSpacingExtra:3dp ? ? ? ?lineSpacingMultiplier:1.2 (設(shè)置行間距的倍數(shù))

? ? ? ? ?自動換行:singleLine = "false"


2.帶陰影的TextView

? ? ? ? ? android:shadowColor:設(shè)置陰影顏色,需要與shadowRadius一起使用哦!

? ? ? ? ? android:shadowRadius:設(shè)置陰影的模糊程度,設(shè)為0.1就變成字體顏色了,建議使用3.0

? ? ? ? ? android:shadowDx:設(shè)置陰影在水平方向的偏移,就是水平方向陰影開始的橫坐標位置

? ? ? ? ? android:shadowDy:設(shè)置陰影在豎直方向的偏移,就是豎直方向陰影開始的縱坐標位置


3.帶邊框的TextView(設(shè)置shape)

? ? ? ? ? ? <solid android:color = "xxx"> 這個是設(shè)置背景顏色的? ? ? ? ? ? //solid:實心的(填充)

? ? ? ? ? ? <stroke android:width = "xdp" android:color="xxx"> 這個是設(shè)置邊框的粗細,以及邊框顏色的? ? ? ? //stroke:描邊

? ? ? ? ? ? <padding?androidLbottom = "xdp"...> 這個是設(shè)置邊距的

? ? ? ? ? ? <corners?android:topLeftRadius="10px"...> 這個是設(shè)置圓角的

? ? ? ? ? ? <gradient> 這個是設(shè)置漸變色的,可選屬性有:startColor:起始顏色endColor:結(jié)束顏色centerColor:中間顏色angle:方向角度,等于0時,從左到右,然后逆時針方向轉(zhuǎn),當angle = 90度時從下往上type:設(shè)置漸變的類型


4.帶圖片(drawableXxx)的TextView

? ? ? ? 核心其實就是:drawableXxx;可以設(shè)置四個方向的圖片,這樣設(shè)置的drawable并不能自行設(shè)置大小?

? ? ? ? Drawable[] drawable=tv.getCompoundDrawables(); //獲得四個不同方向上的圖片資源,數(shù)組元素依次是:左上右下的圖片

? ? ? ? drawable[1].setBounds(100, 0, 200, 200); ?//接著獲得資源后,可以調(diào)用setBounds設(shè)置左上右下坐標點,比如這里設(shè)置了代表的是: 長是:從離文字最左邊開始100dp處到200dp處 寬是:從文字上方0dp處往上延伸200dp

? ? ? ? ?tv.setCompoundDrawables(drawable[0], drawable[1], drawable[2], drawable[3]);為TextView重新設(shè)置drawable數(shù)組!沒有圖片可以用null代替哦! PS:另外,從上面看出我們也可以直接在Java代碼中調(diào)用setCompoundDrawables為 TextView設(shè)置圖片


5.使用autoLink屬性識別鏈接類型

? ?1. xml: all就是全部都包含,自動識別協(xié)議頭(phone,email,web.....)

? ? ? ? ? ? ? android:text="http://www.baidu.com"

? ? ? ? ? ? ? android:autoLink="all"

? ?2.java代碼

? ? ? ? ? ? ? setAutoLinkMask(Linkify.ALL);

? ? ? ? ? ? ? setMovementMethod(LinkMovementMethod.getInstance()); 要加不然點擊了是沒效果的


6.TextView玩轉(zhuǎn)HTML

? ? ? ? ? ? ? <font>:設(shè)置顏色和字體。

? ? ? ? ? ? ? <big>:設(shè)置字體大號

? ? ? ? ? ? ? <small>:設(shè)置字體小號?

? ? ? ? ? ? ? <i><b>:斜體粗體

? ? ? ? ? ? ? <a>:連接網(wǎng)址

? ? ? ? ? ? ? <img>:圖片

7.SpannableString&SpannableStringBuilder定制文本

? ? ? ? ?除了上面的HTML可以定制我們TextView的樣式外,還可以使用SpannableString和SpannableStringBuilder來完成。兩者區(qū)別:前者針對的是不可變文本,而后者則是針對可變文本

? ? ? ? SpannableString span=new SpannableString("紅色打電話斜體刪除線綠色下劃線");

? ? ? ? //1.設(shè)置背景色,setSpan時需要指定的flag,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)

? ? ? ? span.setSpan(newForegroundColorSpan(Color.RED),0,2,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? //2.用超鏈接標記文本

? ? ? ? span.setSpan(newURLSpan("tel:4155551212"),2,5,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? //3.用樣式標記文本(斜體)

? ? ? ? span.setSpan(newStyleSpan(Typeface.BOLD_ITALIC),5,7,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? //4.用刪除線標記文本

? ? ? ? span.setSpan(newStrikethroughSpan(),7,10,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

? ? ? ? //5.用下劃線標記文本

? ? ? ? span.setSpan(newUnderlineSpan(),10,16,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);


8.實現(xiàn)部分可點擊的TextView(核心:ClickableSpan的設(shè)置)


9.實現(xiàn)跑馬燈效果的TextView

10.TextView異步獲取行數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容