1. 程式人生 > >2.3.1 TextView(文本框)詳解

2.3.1 TextView(文本框)詳解

方便 etop wrap -c radi xmlns info 普通 bsp

http://www.runoob.com/w3cnote/android-tutorial-textview.html

1.基礎屬性詳解:

通過下面這個簡單的界面,我們來了解幾個最基本的屬性:

技術分享圖片

布局代碼:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:gravity="center"
    android:background="#8fffad">

    <TextView
        android:id="@+id/txtOne"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:gravity="center"
        android:text="TextView(顯示框)"
        android:textColor="#EA5246"
        android:textStyle="bold|italic"
        android:background="#000000"
        android:textSize="18sp" />

</RelativeLayout>

  上面的TextView中有下述幾個屬性:

  • id:為TextView設置一個組件id,根據id,我們可以在Java代碼中通過findViewById()的方法獲取到該對象,然後進行相關屬性的設置,又或者使用RelativeLayout時,參考組件用的也是id!
  • layout_width:組件的寬度,一般寫:**wrap_content**或者**match_parent(fill_parent)**,前者是控件顯示的內容多大,控件就多大,而後者會填滿該控件所在的父容器;當然也可以設置成特定的大小,比如我這裏為了顯示效果,設置成了200dp。
  • layout_height:組件的寬度,內容同上。
  • gravity:設置控件中內容的對齊方向,TextView中是文字,ImageView中是圖片等等。
  • text:設置顯示的文本內容,一般我們是把字符串寫到string.xml文件中,然後通過@String/xxx取得對應的字符串內容的,這裏為了方便我直接就寫到""裏,不建議這樣寫!!!
  • textColor:設置字體顏色,同上,通過colors.xml資源來引用,別直接這樣寫!
  • textStyle:設置字體風格,三個可選值:**normal**(無效果),**bold**(加粗),**italic**(斜體)
  • textSize:字體大小,單位一般是用sp!
  • background:控件的背景顏色,可以理解為填充整個控件的顏色,可以是圖片哦!

2.實際開發例子

2.1 帶陰影的TextView

涉及到的幾個屬性:

  • android:shadowColor:設置陰影顏色,需要與shadowRadius一起使用哦!
  • android:shadowRadius:設置陰影的模糊程度,設為0.1就變成字體顏色了,建議使用3.0
  • android:shadowDx:設置陰影在水平方向的偏移,就是水平方向陰影開始的橫坐標位置
  • android:shadowDy:設置陰影在豎直方向的偏移,就是豎直方向陰影開始的縱坐標位置

效果圖:

技術分享圖片

實現代碼:

2.2 帶邊框的TextView:
如果你想為TextView設置一個邊框背景,普通矩形邊框或者圓角邊框!下面可能幫到你! 另外TextView是很多其他控件的父類,比如Button,也可以設置這樣的邊框! 實現原理很簡單,自行編寫一個ShapeDrawable的資源文件!然後TextView將blackgroung 設置為這個drawable資源即可!

  

2.3 帶圖片(drawableXxx)的TextView:

在實際開發中,我們可能會遇到這種需求:

技術分享圖片

如圖,要實現這種效果,可能你的想法是:一個ImageView用於顯示圖片 + 一個TextView用於顯示文字,然後把他們丟到一個LinearLayout中,接著依次創建四個這樣的小布局,再另外放到一個大的LinearLayout中,效果是可以實現,但是會不會有點繁瑣呢?而且前面我們前面也說過,布局層次越少,性能越好!使用drawableXxx就可以省掉上面的過程,直接設置四個TextView就可以完成我們的需求!

基本用法:

設置圖片的核心其實就是:drawableXxx;可以設置四個方向的圖片:drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右) 另外,你也可以使用drawablePadding來設置圖片與文字間的間距!

drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右) 另外,你也可以使用drawablePadding來設置圖片與文字間的間距!

效果圖:(設置四個方向上的圖片)

技術分享圖片

實現代碼:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    tools:context="com.jay.example.test.MainActivity" >  
  
    <TextView  
        android:layout_width="wrap_content"  
        android:layout_height="wrap_content"  
        android:layout_centerInParent="true"  
        android:drawableTop="@drawable/show1"  
        android:drawableLeft="@drawable/show1"  
        android:drawableRight="@drawable/show1"  
        android:drawableBottom="@drawable/show1"  
        android:drawablePadding="10dp"  
        android:text="張全蛋" />  
  
</RelativeLayout> 

  

2.4 使用autoLink屬性識別鏈接類型

當文字中出現了URL,E-Mail,電話號碼,地圖的時候,我們可以通過設置autoLink屬性;當我們點擊 文字中對應部分的文字,即可跳轉至某默認APP,比如一串號碼,點擊後跳轉至撥號界面!

技術分享圖片

技術分享圖片

all就是全部都包含,自動識別協議頭~ 在Java代碼中可以調用setAutoLinkMask(Linkify.ALL); 這個時候可以不寫協議頭,autolink會自動識別,但是還要為這個TextView設置: setMovementMethod(LinkMovementMethod.getInstance()); 不然點擊了是沒效果的!

2.5 TextView玩轉HTML

如題,除了顯示普通文本外,TextView還預定義了一些類似於HTML的標簽,通過這些標簽,我們可以使 TextView顯示不同的字體顏色,大小,字體,甚至是顯示圖片,或者鏈接等!我們只要使用HTML中的一些 標簽,加上android.text.HTML類的支持,即可完成上述功能!

  • <font>:設置顏色和字體。
  • <big>:設置字體大號
  • <small>:設置字體小號
  • <i><b>:斜體粗體
  • <a>:連接網址
  • <img>:圖片

如果直接setText的話是沒作用的,我們需要調用Html.fromHtml()方法將字符串轉換為CharSequence接口, 然後再進行設置,如果我們需要相應設置,需要為TextView進行設置,調用下述方法: Java setMovementMethod(LinkMovementMethod.getInstance())

2.3.1 TextView(文本框)詳解