Android入門教程 | TextView簡介(寬高、文字、間距)
TextView簡介
文字,是我們傳達資訊的一種常見方式。在安卓應用上顯示文字,我們通常使用TextView。 之前我們已經知道如何獲取到layout中的TextView,也知道
setText()
方法可以修改顯示的文字。
結合我們實際的生活和學習經驗,寫字的時候,有哪些方面是可以由我們來控制的? 文字內容;文字顏色;大小;背景等等。
最簡單的TextView:
<TextView android:layout_width="wrap_content" android:layout_height="wrap_content" />
得益於as強大的提示功能,我們在layout中輸入<Te的時候,as可能就彈出了提示。
回車或者滑鼠雙擊TextView即可。
這裡關注兩個基本屬性
layout_width
和
layout_height
。分別表示TextView的寬度和高度設定。 實際上這兩個屬性是View的屬性。TextView繼承自View。寬高屬性是基礎屬性,是必須設定的。
寬和高屬性
layout_width/layout_height 可以填入wrap_content,match_parent或者具體的數值。
- wrap_content:表示控制元件寬/高度可由內容來決定。對於TextView,文字越長,它的寬度越寬,直到父view(上層容器)允許的最大寬/高度。
- match_parent:表示控制元件寬/高度達到父view允許的最大值。通俗說就是把空間撐滿。
- 我們也可以 輸入具體數值。比如80dp。 dp是安卓中的一種單位,通常用來規定控制元件的寬高,間隔距離等等。類似的,表示文字大小的單位,安卓裡用sp。
顯示文字
顯示文字,可能是 TextView 最主要的用法了。在 layout 中設定文字,使用 text 屬性。
<TextView android:id="@+id/tv1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="新手教程" /> <TextView android:id="@+id/sample_tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/app_name" />
這裡涉及到一個程式碼風格的問題。上面分別給TextView設定了id。有的人喜歡駝峰風格的,例如sampleTv。
我們可以看到,設定text有多種方式。可以直接把內容寫進去(hard code),也可以使用string資源。 直接寫內容,as會給一個黃色的警告,建議使用者換用@string資源的方式。滑鼠移上去as就可以看到as的警告了。
若要使用@string資源,我們先看另一個xml檔案,即strings.xml。它在res/values裡面。
<string name="app_name">2021</string>
資源命名風格也是小寫字母加下劃線。
res裡面的很多資源,我們可以都可以用R...來找到。
前面我們提到,可以使用 TextView 的 setText 方法來設定文字內容,例如setText("123")。 也可以傳入文字資源的名稱(編號),類似setText(R.string.app_name)。 需要注意的是,R.string.app_name 本身是一個 int 數字,TextView 會根據這個編號去找對應的資源。 如果這樣呼叫 setText(123),大機率會報下面的這個錯誤。
android.content.res.Resources$NotFoundException: String resource ID #0x0 at android.content.res.Resources.getText(Resources.java:360)
文字設定
一般來說,我們會設定TextView文字的顏色,背景等等。
- textColor 設定字型顏色
- textSize 設定字型大小
- textStyle 設定字型樣式
示例:
textStyle 設定字型樣式
- normal 沒有特殊效果,預設值
- italic 斜體
- bold 粗體
xml 中設定:
示例1:設定斜體
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Fisher" android:textColor="#000000" android:textStyle="italic" />
效果:
示例2:設定斜體並且加粗
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="bold|italic" android:textColor="#000000" android:textStyle="bold|italic" />
效果:
程式碼中設定
使用 TextView 的 setTypeface 方法來設定字型效果。
tv1.setTypeface(null, Typeface.NORMAL); // 普通tv1.setTypeface(null, Typeface.BOLD); // 加粗tv2.setTypeface(null, Typeface.ITALIC); // 斜體tv3.setTypeface(null, Typeface.BOLD_ITALIC); // 加粗和斜體
setTypeface(@Nullable Typeface tf, @Typeface.Style int style)有2個引數。 第一個是字型,這裡可以忽略。 第二個是效果,有正常,加粗,斜體,加粗和斜體這幾種可選。
字型(字型檔)
預設情況下,TextView 的 typeface 屬性支援 sans、serif和monospace 這三種字型。 系統預設 sans 作為文字顯示的字型。但這三種字型只支援英文。如果顯示中文,無論選擇這三種字型中的哪一種,顯示效果都是一樣的。
layout中設定字型:
使用
android:typeface
來設定字型。
<!-- sans字型 --><TextView android:text="Hello,World" android:typeface="sans" /><!-- serifs字型 --><TextView android:text="Hello,World" android:typeface="serif" /><!-- monospace字型 --><TextView android:text="Hello,World" android:typeface="monospace" />
程式碼中使用字型:
tv.setTypeface(Typeface.SERIF);tv.setTypeface(Typeface.SANS_SERIF);tv.setTypeface(Typeface.MONOSPACE);
引入字型庫
需要引入ttf字型檔案。把字型檔案放在assets/font目錄裡。 程式碼中使用AssetManager來獲取字型。
例如:在Activity中設定字型。
TextView tv1 = findViewById(R.id.tv1); Typeface tf = Typeface.createFromAsset(getAssets(), "fonts/otherFont.ttf"); tv1.setTypeface(tf); // 使用字型
間距設定
margin
和
padding
其實是 View 的屬性。這裡我們拿 TextView 來看一下。
以後想顯示一些文字的時候,我們首先會想起的是TextView。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70008155/viewspace-2839002/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Android入門教程 | SharedPreferences 簡介Android
- Android入門教程 | Button,TextView背景設定AndroidTextView
- Android入門教程 | AsyncTask 使用介紹Android
- Android之TextView設定drawableRight等圖片文字間隔AndroidTextView
- Flutter入門教程(一)Flutter簡介Flutter
- gitbook 入門教程之 gitbook 簡介Git
- Android TextView 富文字之 android.text.style.xxxSpanAndroidTextView
- 《MySQL 入門教程》第 01 篇 MySQL 簡介MySql
- 2021 Duilib最新入門教程(一)Duilib簡介UI
- Android入門教程 | mmap 檔案對映介紹Android
- Android入門教程 | RecyclerView使用入門AndroidView
- TextView未繪製情況下獲取其寬高TextView
- Android入門教程 |res資源目錄簡介與shape的繪製和使用Android
- 教你如何實現 Android TextView 文字輪播效果AndroidTextView
- Android入門教程 | Kotlin協程入門AndroidKotlin
- Redis 入門 - 簡介Redis
- GraphQL 入門簡介
- ElasticSearch 入門簡介Elasticsearch
- CSS 入門簡介CSS
- Fiddler 入門簡介
- Kubernetes入門簡介
- ElasticSearch入門簡介Elasticsearch
- Docker入門簡介Docker
- 003 Android 精確測量文字寬高以及基線位置Android
- 【Linux入門教程】1 簡介、檔案管理、目錄Linux
- Android 混淆簡單入門Android
- 小白入門 - PHP簡介PHP
- 【Android開發入門教程】三.Activity入門指南!Android
- Android開發筆記——TextView文字設定不同顏色Android筆記TextView
- Android入門教程 | DialogFragment 的使用AndroidFragment
- GraphQL 快速入門【1】簡介
- phyon快速入門(python簡介)Python
- Azure Terraform(一)入門簡介ORM
- CSS設定英文字母之間間距CSS
- 簡單的 Go 入門教程Go
- Android入門教程 | 多執行緒Android執行緒
- Android入門教程 | Fragment 基礎概念AndroidFragment
- Android入門教程 | DrawerLayout 側滑欄Android