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ù)
