android中的按鈕分為兩類,普通按鈕和圖片按鈕。而且我們可以通過指定xml檔案作為按鈕的資源或者背景,來實現按鈕的動態變化。下面的這個程式實現了按鈕按下去之後按鈕的圖片改變的效果。
按下之前和按下時的對比
這個效果就是通過指定一定xml檔案實現的。代碼:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableRow>
<!-- 普通文字按鈕 -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/red"
android:text="普通按鈕"
android:textSize="10pt"
/>
<!-- 普通圖片按鈕 -->
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/blue"
android:background="#000000"
/>
</TableRow>
<TableRow>
<!-- 按下時顯示不同圖片的按鈕 -->
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button_selector"
android:background="#000000"
/>
<!-- 帶文字的圖片按鈕-->
<Button
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_selector"
android:text="帶文字的圖片按鈕"
/>
</TableRow>
</TableLayout>
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TableRow>
<!-- 普通文字按鈕 -->
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/red"
android:text="普通按鈕"
android:textSize="10pt"
/>
<!-- 普通圖片按鈕 -->
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/blue"
android:background="#000000"
/>
</TableRow>
<TableRow>
<!-- 按下時顯示不同圖片的按鈕 -->
<ImageButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/button_selector"
android:background="#000000"
/>
<!-- 帶文字的圖片按鈕-->
<Button
android:id="@+id/test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_selector"
android:text="帶文字的圖片按鈕"
/>
</TableRow>
</TableLayout>
<?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/red"
/>
<!-- 指定按鈕鬆開時的圖片 -->
<item android:state_pressed="false"
android:drawable="@drawable/purple"
/>
</selector>
摘自 hn307165411的專欄