Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android基本控件學習-----Button,android-----button

android基本控件學習-----Button,android-----button

編輯:關於android開發

android基本控件學習-----Button,android-----button


Button講解:

一、在我們實際的使用button的時候經常會對button不同狀態會有不同的顯示,在講解Button前,首先對drawable下面的statelistdrawable的相關知識講一下,StateListDrawable在一中drawable下面的一種資源文件,它的關鍵節點selector,我只需要在設置button屬性background的時候@drawable/selector_name就可以了,這時就會根據不同狀態現在button的變化,當然這樣StateListDrawable也適合其他一些控件,主要還是用於Button。

StateListDrawable我們可能用到的屬性:

  • drawable:引用的Drawable位圖,我們可以把他放到最前面,就表示組件的正常狀態~
  • state_focused:是否獲得焦點
  • state_window_focused:是否獲得窗口焦點
  • state_enabled:控件是否可用
  • state_checkable:控件可否被勾選,eg:checkbox
  • state_checked:控件是否被勾選
  • state_selected:控件是否被選擇,針對有滾輪的情況
  • state_pressed:控件是否被按下
  • state_active:控件是否處於活動狀態,eg:slidingTab
  • state_single:控件包含多個子控件時,確定是否只顯示一個子控件
  • state_first:控件包含多個子控件時,確定第一個子控件是否處於顯示狀態
  • state_middle:控件包含多個子控件時,確定中間一個子控件是否處於顯示狀態
  • state_last:控件包含多個子控件時,確定最後一個子控件是否處於顯示狀態

二:實例一:實現按鈕按下效果和按鈕的圓角

Java文件

package com.example.test3;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class MainActivity extends Activity {
    private Button btn1;
    private Button btn2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn1 = (Button) findViewById(R.id.btn_one);
        btn2 = (Button) findViewById(R.id.btn_two);
        btn2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                if (btn2.getText().toString().endsWith("按鈕不可用")){
                    btn1.setEnabled(false);
                    btn2.setText("按鈕可用");
                }else{
                    btn1.setEnabled(true);
                    btn2.setText("按鈕不可用");
                }
            }
        });
    }
}

StateListDrawable文件:其中關於shape的使用前面已經講過

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <!--按下按鈕-->
    <item android:state_pressed="true">
        <shape>
            <stroke android:width="5px" android:color="@android:color/holo_red_light"/>
            <corners android:radius="15dp"/>
            <solid android:color="@android:color/holo_red_light"/>
        </shape>
    </item>
    <!-- 按鈕不可用-->
    <item android:state_enabled="false">
        <shape>
            <stroke android:width="5px" android:color="@android:color/darker_gray"/>
            <corners android:radius="15dp"/>
            <solid android:color="@android:color/darker_gray"/>
        </shape>
    </item>
    <!--其他狀況-->
    <item>
        <shape>
            <stroke android:width="5px" android:color="@android:color/holo_blue_bright"/>
            <corners android:radius="15dp"/>
            <solid android:color="@android:color/holo_blue_bright"/>
        </shape>
    </item>
</selector>

布局文件:

<?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:orientation="vertical"
    android:background="#ffffff">
    <Button
        android:id="@+id/btn_one"
        android:layout_width="match_parent"
        android:layout_height="70dp"
        android:background="@drawable/btn_bg1"
        android:text="按鈕"
        android:text
        android:textSize="24sp"/>
    <Button
        android:id="@+id/btn_two"
        android:layout_width="match_parent"
        android:layout_height="80dp"
        android:layout_marginTop="10dp"
        android:text="按鈕不可用"
        android:textSize="24sp"
        android:text
        />

</LinearLayout>

效果圖:

 

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