1:顯示富文字(url、不同大小、字型、顏色的文字)
在textview類中預定義了一些類似html的標籤,通過這些標籤,可以使textview控制項顯示不同的顏色、大小、字型的文字。
:設定顏色 :設定大號字 :設定小號字
:斜體:粗體 :等寬字型(monospace)
:換行(行與行之間沒有空行) :換行(行與行之間的空行)
這些標籤雖然和html的標籤類似,但並不具備html標籤的全部功能。如標籤只支援color和face兩個屬性。
在使用這些標籤時不能將帶這些標籤的字串直接賦值到textview上,而需要使用html.frmhtml方法將帶標籤的字串轉換成charsequence物件,再賦值給textview。
如果想在顯示的文字中將url、e-mail、**等特殊內容高亮顯示,並在單擊時觸發相應的動作(如單擊**會直接在撥號介面顯示**號碼),
可以設定標籤的android:autolink屬性,該屬性可設定的屬性值如下:
下面是示例
public class main extends activity }
2:顯示表情影象和文字
這樣的效果類似我們在網路上聊天時發出的表情和文字,我們新增乙個
public class main extends activity }, null); txtsecond.settext(charsequence); txtsecond.setmovementmethod(linkmovementmethod.getinstance()); } /** * 由於無法直接使用檔名來引用res/drawable中的影象資源, 我們利用反射技術 從r.drawable類中通過影象資源檔名, * 去獲得相應的影象資源id,實現**如下: */ public static int getresourceid(string name) catch (exception e) return id; } }
3:單擊鏈結彈出activity
上面我們已經學會了使用讓textview自動識別的特殊文字,但要是我們想在單擊textview時執行我們自定義的動作要怎麼辦呢?
public class main extends activity /**解釋一下這個setspan方法,第乙個引數需要設定乙個clickablespan物件, * 第二個和第三個引數分別表示文字中要設定成span的某段文字的起始位置和終止位置的下乙個字元的位置 * 最後乙個引數是乙個標誌,分別是: * spannable.span_exclusive_inclusive 在span前的字元不應用span的效果,後面的字元應用 * spannable.span_exclusive_exclusive 在span前的字元應用span的效果,後面的不應用 * spannable.span_inclusive_inclusive 在span前後的字元都應用span的效果 */ }, 0, text.length(), spannable.span_exclusive_exclusive); txtsecond.settext(spannablestring); txtsecond.setmovementmethod(linkmovementmethod.getinstance()); } }
4:為指定文字新增背景
有乙個很常用的span類叫backgroundcolorspan,該類的功能是設定指定字串的背景色:
第1步:將字串轉換成spannablestring物件
第2步:確定要設定的子字串的start和end
第3步:建立backgroundcolorspan物件
backgroundcolorspan bgcolorspan=new backgroundcolorspan(color.red);
第4步:使用setspan方法將指定子字串轉換成backgroundcolorspan物件
spannablestring.setspan(bgcolorspan,start,end,spannable.span_exclusive_exclusive);
第5步:用spannablestring物件設定textview控制項
textview.settext(spannablestring);
textview.setmovementmethod(linkmovementmethod.getinstance());
5:帶邊框的textview
android sdk本身提供的textview控制項並不支援邊框,所以要想實現這一效果的話我們可以自定義乙個控制項繼承textview並修改它,
當然也可以設定textview控制項的背景圖,這個不作演示。
首先定義乙個bordertextview類, extends textview 。
public class bordertextview extends textview @override protected void ondraw(canvas canvas) } 然後在xml布局檔案中加入這個控制項,這裡控制項的型別要寫上全名(packagename+classname):
效果如下:
6:設定行間距
如果在textview控制項中顯示了多行文字,會有乙個預設的行間距。如果要更改這個預設的行間距的話,我們可以使用下面幾種方式:
android:linespacingextra屬性設定精確的行間距。
android:linespacingmultiplier屬性設定預設行間距的倍數。
使用style資源設定行間距。我們需要先在res\values目錄中的檔案裡定義乙個style:
下面是示例。
<?xml version="1.0" encoding="utf-8"?>
此外還可以在**中設定:textview.setlinespacing(50,1.2f);第乙個引數是精確值,後乙個是倍數。
以上幾種方式,如果同時設定了精銳值和倍數的話,系統會以最大的乙個作為行間距的距離。
7:在未顯示完的文字後面加上省略號
當文字內容太多時,textview控制項一屏無法完整顯示,這樣有時候我們就需要在內容中加上省略號。
在textview標籤中加上android:singleline="true",這樣內容只會顯示一行,然後再加上android:ellipsize="end",
這樣在該行的末尾就會加上省略號了,android:ellipsize這個屬性值還可以是start,middle,有興趣的朋友可以自己試試。
我們還可以在**中進行設定:textview.setellipsize(textutils.truncateat.end);後面跟的是乙個列舉型別。
8:走馬燈效果
對於長文字的顯示,除了用省略號之外我們還可以讓它滾動顯示,這樣的效果也叫走馬燈效果。
我們實現這個效果,也要用到上面android:ellipsize的屬性,還有android:marqueerepeatlimit,和android:focusable屬性。
如果有的朋友實現這個走馬燈效果時發現它跑不起來,記得把android:focusableintouchmode事件也寫上就行了。
9:垂直滾動
像我們看**時,會有很多內容要往下瀏覽,這時我們就要用到垂直滾動。
與垂直滾動直接相關的有下面幾個屬性:
android:scrollbars="vertical"
該屬性值必須設定為vertical
android:scrollbarstyle="outsideoverlay" 表示滾動條的位置
android:scrollba***deduration="2000" 表示滾動條從出現到消失的時間,單位是毫秒。
如果你設定了這幾個屬性還是沒有出現垂直滾動條的話,請看看你的內容android:text,只有比較長的文字才可以滾動。
好了textview就學習到這裡,明天繼續學習edittext。
從零開始學android
相對布局管理器指的是參考某一其他控制項進行擺放,可以通過控制,將元件擺放在乙個指定參考元件的上 下 左 右等位置,這些可以直接通過各個元件提供的屬性完成。下面介紹一下各個方法的基本使用 no.屬性名稱 對應的規則常量 描述1 android layout below relativelayout.b...
從零開始學Android(一)
如果是國內環境,需要配置相關的國內映象和倉庫。有條件的話還是選擇vpn的方式進行更新,國內的倉庫和映象有些檔案缺失,導致相關的依賴檔案缺乏,從而導致工程編譯無法通過。gradle倉庫一般使用阿里雲的的倉庫進行代替,但是阿里雲的倉庫缺失一些檔案,所以一些工程可能無法進行編譯。具體的配置方法如下 首先,...
從零開始學jQuery Validate 之01
jquery validate 外掛程式為表單提供了強大的驗證功能,讓客戶端表單驗證變得更簡單,同時提供了大量的定製選項,滿足應用程式各種需求。該外掛程式 了一套有用的驗證方法,包括 url 和電子郵件驗證,同時提供了乙個用來編寫使用者自定義方法的 api。所有的 方法預設使用英語作為錯誤資訊,且已...