§2.1 最常用的控制元件------文字框(TextView)
文字框TextView是我們在安卓應用的介面開發中經常用到的一個控制元件,同時,它也是輸入框(EditText)和按鈕(Button)的父類 (輸入框和按鈕後面章節會有介紹)
作用:在頁面上顯示文字。
我們重新來看第一章節的那個“Hello World應用”。 在layout/activity_main.xml佈局檔案程式碼如下:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/activity_main"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.rongma.helloworld.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!" />
</RelativeLayout>
我們可以看到,在佈局檔案程式碼中,存在一個TextView節點,這個TextView就是用來在頁面上顯示文字內容的。
其中,android:text屬性用於設定文字內容,此處的屬性值為"Hello World",所以在手機上顯示的內容也就是“Hello World”。 如果把android:text的值改為其他的字串,那麼手機上也會顯示相應的文字內容。
除了android:text之外,還要為大家介紹幾個常用的控制元件屬性:
- android:background 這個屬性用於設定控制元件的背景,此處可以設定背景圖片,也可以設定背景顏色。
還是以“Hello World”應用程式為例,我們對TextView控制元件設定如下屬性:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Hello World!"
android:background="#00ffff"
/>
執行程式,將會看到如下效果: 即,"Hello World!"文字新增了一個背景顏色。
同樣的,我們也可以將圖片資源匯入到drawable資料夾下(例如,匯入一個bg.png),此時,將android:background值設定為 android:background="@drawable/bg"。則”Hello World“字串的背景將被設定為bg.png圖片
- android:layout_width 這個屬性用於設定控制元件的寬度
- android:layout_height 這個屬性用於設定控制元件的高度
android:layout_height和android:layout_width的屬性值分三種:
第一種:wrap_content,從字面意義上理解,為包裹內容。即這個控制元件的大小隨著內容的變化而變化。在本案例中,TextView的大小將隨著文字的內容大小而改變。
第二種:match_parent , 這種屬性值為填充窗體,即這個控制元件的寬(或高),和父窗體的大小保持一致。
第三種:實際數值,比如200dp
(此處介紹一個新的長度單位:dp,裝置獨立元素,一種基於螢幕密度的抽象單位,隨著螢幕密度的改變,dp與畫素之間的換算會發生改變. 也就是說,當一個控制元件的寬高被設定dp作為長度單位時,這個控制元件的寬高將隨著手機螢幕解析度的變化而自適應)
我們對"Hello World"中的TextView控制元件進行設定:
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!"
android:background="#00ffff"
/>
執行程式
我們可以看到,由於我們設定了android:layout_width="match_parent" android:layout_height="wrap_content",所以執行結果中文字框的寬度變為填充整個窗體,高度為包裹內容。
android:textSize 用於設定文字的大小
在這裡要介紹一個新的長度單位 sp,這個單位用於Android應用程式中的文字大小。可以根據使用者的字型大小首選項進行相對應的縮放。android:textColor 用於設定文字顏色
此處,我們將“Hello World”應用程式中的TextView設定文字大小和顏色
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Hello World!"
android:background="#00ffff"
android:textColor="#ffff00"
android:textSize="32sp"
/>
執行結果:
我們可以看到,文字的大小和顏色均發生了改變。
- android:id 用於設定控制元件的id,即唯一標識(類似身份證)
用法:
1 在xml佈局檔案中,設定id值
android:id="@+id/tv_hw"
2 在MainActivity.java檔案中,對這個控制元件進行操作:
public class MainActivity extends Activity {
private TextView mTvContent; //1. 定義一個TextView物件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mTvContent = (TextView) findViewById(R.id.tv_hw); //2.將這個TextView物件通過findViewById與xml佈局檔案中的id相關聯
mTvContent.setText("你好,安卓!"); //3.通過呼叫這個方法,我們可以設定TextView要顯示的內容。
}
}
(1) private TextVIew mTvContent 建立一個變數,是TextView型別的。
(2) mTvContent = (TextView) findViewById(R.id.tv_hw); 將這個TextView物件通過findViewById方法,與xml佈局檔案中id值為tv_hw的控制元件相關聯,並強制型別轉換為TextView型別
(3)此處是通過Java程式碼對TextView進行操作。 mTvContent.setText("你好,安卓!");
執行結果:
經常看到一些書籍大篇幅的介紹Android控制元件的屬性。關於這種現象,我的觀點是:只需要記住幾個常用的屬性。在開發過程中,如果有涉及到其他屬性時,我們可以通過Google等搜尋引擎進行查詢。
同理,對於Java程式碼操作控制元件也是一樣的,我們只需要記住常用的幾個方法。 比如,在上面的案例中,我們使用了setText來設定TextView要顯示的文字。那麼,如果某一天,需求是設定文字顏色時。我們可以在搜尋引擎中進行查詢,最終獲得結果:要呼叫setTextColor方法
死記硬背屬性和方法,是最傻的一種學習方式,我們只需要掌握其中的“套路”即可!
相關文章
- Android UI控制元件系列:TextView(文字框)AndroidUI控制元件TextView
- 文字太多?控制元件太小?試試 TextView 的新特性 Autosizing 吧!控制元件TextView
- TextView、TextView的子類之EditText、EditText的子類之自動完成文字框(AutoCompleteTextView)的功能與用法TextView
- 詳細實現微信輸入框效果(textView自適應文字高度)TextView
- Android:TextView控制元件AndroidTextView控制元件
- TextView搜尋文字高亮顯示TextView
- Android TextView格式化文字AndroidTextView
- 在TextView使用部分顏色文字TextView
- Android Vertical TextView 文字豎排AndroidTextView
- 常見問題:文字框控制元件的訊息及應用 (轉)控制元件
- 使用SendMessage函式滾動文字框控制元件中的內容 (轉)函式控制元件
- 如何使用CSS設定文字框的邊框CSS
- 13種常用按鈕、文字框、表單等CSS樣式CSS
- 【Android 】TextView 區域性文字變色AndroidTextView
- Android--TextView 文字顯示和修改AndroidTextView
- 2.1 常用資料型別資料型別
- JavaScript文字框事件JavaScript事件
- JavaScript 文字框事件JavaScript事件
- js 文字框插入JS
- input文字框的實際寬度包括邊框的
- 點選文字框實現文字框內容選中效果
- iOS:提示框(警告框)控制元件UIAlertView的詳解iOS控制元件UIView
- js中文字框的事件JS事件
- 動態新增或減少文字框,並獲取文字框值
- CSS 文字框圓角CSS
- AlloyRenderingEngine文字框元件元件
- html的常用控制元件HTML控制元件
- Java 設定Word文字框中的文字旋轉方向Java
- Java 讀取Word文字框中的文字/圖片/表格Java
- JavaScript帶下拉選單的文字框JavaScript
- 文字框輸入文字倒計詳解
- javascript input文字框新增提示文字效果JavaScript
- 如何讓文字垂直居中對齊文字框
- (原創)【B4A】一步一步入門07:EditText,文字框、密碼框、鍵盤樣式、提示文字(控制元件篇03)密碼控制元件
- 多年前寫的文字框擴充套件控制元件(有ValueChanging事件等),已放github套件控制元件事件Github
- 教你如何實現 Android TextView 文字輪播效果AndroidTextView
- 聊天平臺原始碼,TextView部分文字變色原始碼TextView
- 設定TextView按下時變換文字顏色TextView