前言
Butten 繼承自 TextView,因而很多 TextView的屬性也可以用在 Button 上。
ImageButton 繼承自 Button,用法與 Button 大緻相同,值得注意的是 Button可以顯示文字,而 ImageButton 無法通過 android:text 顯示文字,主要拿來顯示圖檔。
相關方法&屬性
除了構造函數外,Button類沒有自己定義的方法,主要通過繼承父類的方法實作對按鈕元件的操作。

Button 常用屬性與 TextView 相同。
預設情況下,Button 使用安卓系統提供的預設背景,是以可能在不同裝置上風格不同,為此 Android 支援修改顯示風格。
ImageButton則可通過android:src顯示圖檔。
StateListDrawable
前面 TextView 中講到了 drawable 檔案中的<spape>标簽,本次我們将講解 <selector> 标簽,并通過它實作點選效果。
<selector> 标簽相關屬性
rawable:引用的Drawable位圖,我們可以把他放到最前面,就表示元件的正常狀态~
state_focused:是否獲得焦點
state_window_focused:是否獲得視窗焦點
state_enabled:控件是否設定了響應事件
state_checkable:控件可否被勾選; 例如:checkbox
state_checked:控件是否被勾選
state_selected:控件是否被選擇,針對有滾輪的情況
state_pressed:控件是否被按下/點選
state_active:控件是否處于活動狀态,eg:slidingTab
state_single:控件包含多個子控件時,确定是否隻顯示一個子控件
state_first:控件包含多個子控件時,确定第一個子控件是否處于顯示狀态
state_middle:控件包含多個子控件時,确定中間一個子控件是否處于顯示狀态
state_last:控件包含多個子控件時,确定最後一個子控件是否處于顯示狀态
示例(按鍵點選效果)
button_click.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:state_pressed="true"
android:drawable="@drawable/timg1"/>
<item
android:drawable="@drawable/timg2"/>
</selector>
MainActivity.java
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center|top">
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="20dp"
android:text="button"
android:background="@drawable/button_click"/>
<ImageButton
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="20dp"
android:src="@drawable/left"/>
</LinearLayout>
效果示範圖
點選事件
前面做登入界面的時候,使用到了登入按鈕跳轉到歡迎界面。
實作點選事件有兩種方法;第一種是 android:onClick , 第二種是 OnClick ( )。
android:onClick
以 Button 為例,當按鍵按下事,會觸發 showToast 方法。
<Button
android:layout_width="100dp"
android:layout_height="100dp"
android:layout_marginTop="20dp"
android:text="button"
android:background="@drawable/button_click"
android:onClick="showToast"/>
回到 Activity,編寫showToast()函數。
public void showToast(View view){
Toast.makeText(this,"方法1:我被點到啦",Toast.LENGTH_SHORT).show();
}