Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 布局與控件(四)-Button的響應與背景

布局與控件(四)-Button的響應與背景

編輯:關於Android編程

第4節 Button

按鈕是需要與用戶進行互動的控件。

\

Button繼承自TextView,凡是TextView有的特定,它都有。

public class Button extends TextView {
    ......
}

4.1 與TextView的不同

Button是使用了特別style的TextView。在Button創建的過程中,它使用了一個系統內部的style,

public Button(Context context, AttributeSet attrs) {
    //創建Button的時候,系統給它使用了特別的style:com.android.internal.R.attr.buttonStyle
    this(context, attrs, com.android.internal.R.attr.buttonStyle);
}

4.2 Button的使用方式

Button被點擊後,需要有所響應。其實不僅是Button,所有的View(包括TextView)都可以添加響應。

安卓提供了兩種響應的方式。

4.2.1 在xml布局文件中設置響應

Button添加一個屬性android:onClick,讓它的值等於監聽函數的函數名。例如,叫onClick

在java源碼當中,創建一個onClick()函數,聲明成public, 返回void類型,傳入參數View

public void onClick(View v)
{

}

使用ViewgetId(),識別需要響應的對象,添加響應代碼,

public void onClick(View v)
{
    //使用getId(),識別需要響應的對象
    switch(v.getId())
    {
        //添加需要響應的操作代碼;
        case R.id.button1:
        break;
    }
    break;

}

4.2.2 在java源碼中設置響應

在java源碼當中,創建監聽器,

OnClickListener mListener = new OnClickListener() {

    //這個onClick()函數與4.2.1中定義的完全一樣
    public void onClick(View v)
    {
        //使用getId(),識別需要響應的對象
        switch(v.getId())
        {
            //添加需要響應的操作代碼;
        }
        break;

    }
}

通過findViewById()得到Button;再通過ViewsetOnClickListener設置監聽器mListener

//獲取xml中的Button對象
Button btn = (Button) findViewById(R.id.my_button);
//設置監聽器
btn.setOnClickListener( mListener );

雖然這裡講的是Button響應的onClick,但實際上,所有的View都可以響應點擊操作。

所有都控件或者布局都是View的子類,所以它們設置監聽的方法也都是一樣的。

4.3 按鈕點擊效果

除了使用系統設計的按鈕樣式,也可以自己定義按鈕按下去和沒有按下去的效果。

res\drawable\目錄上,點擊右鍵,啟動創建drawable resource的向導;

\

創建selector drawable的xml文件,文件名為button_selector

\

這樣,就在res\drawable\目錄下創建了一個名為button_selector.xml的drawable文件。

根據Button是否被按下的狀態android:state_pressed,分別為它們設置不同的drawable。

android:state_pressed=true,說明當前按鈕被按下,
android:state_pressed=false,說明當前按鈕沒有被按下;

這裡我們用ColorDrawable演示設置Drawable。在res\values\colors.xml中定義的顏色的名字;給android:drawable屬性設置顏色,


    
    

如果使用其它類型的Drawable,使用方式類似。

例如背景是圖片:按下使用normal.png,未按下使用pressed.png。這些圖片放在res\mimap\目錄下。對應的selector就應該寫成,


    
    

Buttonandroid:background屬性,使用drawable selector,

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved