1. 程式人生 > >Android UI設計——Button控制元件

Android UI設計——Button控制元件

  這個是大家在熟悉不過的了,初學者在學習的時候都是最先使用Button進行練習。
  他控制元件的顯示設定也很簡單,如TextView一樣包括:id,寬,高,名稱(也就是顯示的文字)等的設定。在此不再贅述。
  

點選事件

  Button 最常見的一種使用就是使用監聽器,實現點選事件。首先在Activity的onCreate方法中新增如下程式碼:
方式一:通過匿名內部類的方法來實現監聽。

        Button btnSecond = (Button) findViewById(R.id.btnSecond);
        btnSecond.setOnClickListener(new
View.OnClickListener() { @Override public void onClick(View view) { Intent intentSecond = new Intent(MainActivity.this,MainActivity.class); startActivity(intentSecond); } });

方式二:通過實現介面的方法來實現監聽。

public class MainActivity
extends BaseActivity implements View.OnClickListener {
private Button btnSecond; @Override protected void onCreate(Bundle savedInstanceState) { Log.d("Activity", this.toString()); super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnSecond = (Button) findViewById(R.id.btnSecond); btnSecond.setOnClickListener(this
); } @Override public void onClick(View view) { switch (view.getId()){ case R.id.btnSecond: Intent intentSecond = new Intent(MainActivity.this,SecondActivity.class); startActivity(intentSecond); break; default: break; } } }

按鈕背景設定

  此處背景的設定是在AndroidStudio軟體中設定執行的,Ecplise中可能稍有不同。
  在layout佈局檔案中新增程式碼:android:background=""進行設定,屬性值可以是十六進位制的背景色,例如:“#ff00ff”;也可以是引用values中自己設定的color值,例如:”@color/red”;也可以是drawable中自己設定的xml檔案,例如:”@drawable/btn_background”。
  前兩種主要用於設定純色的背景,但是這種設定並不人性化,因為我們都知道,通常一個按鈕當我們按下去的時候他的顏色會變深,以通知我們選中了按鈕。這是比較人性化的。但是純色的背景只有一個,我們按下的時候並不知道是否選中,因此我們需要設定兩種顏色來當做按鈕的背景。這種只能通過第三種方法來實現。

  在drawable中新建一個xml檔案。

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:drawable="@mipmap/buttonpressed_pink" android:state_pressed="true"/>
    <item android:drawable="@mipmap/button_pink"/>
</selector>

  在layout的佈局檔案中設定按鈕的背景:

<Button
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Button"
            android:background="@drawable/btn_background"/>

結果如下:

這裡寫圖片描述