Android Button的基本使用

weixin_34365417發表於2016-08-18

title: Android Button的基本使用
tags: Button,按鈕


Button介紹:

Button(按鈕)繼承自TextView,在Android開發中,Button是常用的控制元件,用起來也很簡單,你可以在介面xml描述文件中定義,也可以在程式中建立後加入到介面中,其效果都是一樣的。不過最好是在xml文件中定義,因為一旦介面要改變是話,直接修改一下xml就行了,不用修改Java程式,並且在xml中定義層次分明,一目瞭然。

Button 支援的 XML 屬性及相關方法

XML 屬性 相關方法 說明
android:clickable setClickable(boolean clickable) 設定是否允許點選。
clickable=true:允許點選
clickable=false:禁止點選
android:background setBackgroundResource(int resid) 通過資原始檔設定背景色。
resid:資源xml檔案ID
按鈕預設背景為android.R.drawable.btn_default
android:text setText(CharSequence text) 設定文字
android:textColor setTextColor(int color) 設定文字顏色
android:onClick setOnClickListener(OnClickListener l) 設定點選事件

下面通過例項來給大家介紹Button的常用效果。

例項:Button點選事件寫法1、寫法2、設定背景圖片、設定背景顏色、設定背景shape、V7包按鈕樣式

我們首先來看一下佈局檔案:activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_marginLeft="10dp"
    android:orientation="vertical">

    <Button
        android:id="@+id/btn_click_one"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Button點選事件寫法1" />

    <Button
        android:id="@+id/btn_click_two"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="click"
        android:text="Button點選事件寫法2" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@mipmap/icon_button_bg"
        android:padding="10dp"
        android:text="Button設定背景圖片" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@android:color/holo_red_dark"
        android:padding="10dp"
        android:text="Button設定背景顏色" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="10dp"
        android:background="@drawable/shape_button_test"
        android:padding="10dp"
        android:text="Button設定shape" />

    <TextView
        style="@style/Widget.AppCompat.Button.Colored"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="10dp"
        android:text="V7包按鈕樣式"
        android:textColor="#ffffffff"
        android:textSize="20sp" />

</LinearLayout>

佈局檔案對應的效果圖如下:


1976740-f90775eff29a3db6
Button基本使用

上面佈局檔案中定義了6個Button,它們指定的規則如下。
1.給Button指定了android:id="@+id/btn_click_one",在MainActivity.xml根據id進行查詢並且設定點選事件。

//給第一個按鈕設定點選事件
findViewById(R.id.btn_click_one).setOnClickListener(onClickListener);

點選之後進行Toast提示。

private View.OnClickListener onClickListener=new View.OnClickListener() {
        @Override
        public void onClick(View v){
            Toast.makeText(MainActivity.this,"Button點選事件1",Toast.LENGTH_LONG).show();
        }
    };

2.給xml中給button增加了android:onClick="click"屬性,然後在該佈局檔案對應的Acitivity中實現該方法。需要注意的是這個方法必須符合三個條件:
1).方法的修飾符是 public
2).返回值是 void 型別
3).只有一個引數View,這個View就是被點選的這個控制元件。

     public void click(View v){
        switch (v.getId()){
            case R.id.btn_click_two:
                Toast.makeText(MainActivity.this,"Button點選事件2",Toast.LENGTH_LONG).show();
                break;
        }
    }

3.設定一張背景圖片

android:background="@mipmap/icon_button_bg"

4.設定背景顏色

android:background="@android:color/holo_red_dark"

5.設定背景shape,android:background="@drawable/shape_button_test",可以自定義Button的外觀,從效果圖中我們可以看到Button背景透明,有邊框,有弧度。
shape_button_test.xml檔案如下:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" >
    <!--     預設背景色 -->
    <solid android:color="@android:color/transparent"/>
    <!-- 邊框 -->
    <stroke
        android:width="1dp"
        android:color="@android:color/black" />
    <!--     設定弧度 -->
    <corners
        android:radius="20dp"/>
</shape>

6.設定按鈕的樣式

style="@style/Widget.AppCompat.Button.Colored"

這是V7包裡面自帶的style樣式。按鈕的顏色是ButtonTest/app/src/main/res/values/colors.xml下name="colorAccent"的顏色。

Button使用注意事項:

1.Button的setOnClickListener優先順序比xml中android:onClick高,如果同時設定點選事件,只有setOnClickListener有效。
2.能用TextView就儘量不要用Button,感覺TextView靈活性更高。(純屬個人意見)

學到了以上幾招,能解決開發中Button的大部分用法。
點選下載原始碼

各位看官如果覺得文章不錯,幫忙點個贊吧,對於你來說是舉手之勞,但對於我來說這就是堅持下去的動力。

如果你想第一時間看我們的後期文章,掃碼關注公眾號,每週不定期推送Android開發實戰教程文章,你還等什麼,趕快關注吧,學好技術,出任ceo,贏取白富美。。。。

      Android開發666 - 安卓開發技術分享
            掃描二維碼加關注
1976740-b455996b79c9e935.jpg
Android開發666

相關文章