在畫幾個設置界面,用到了button控件,對於button空間的背景色在不一樣狀態下的顏色改變方法,作了一下嘗試,發現了兩種背景顏色改變的方法,就總結了下。android
方法一嘗試了好多遍纔好,要點在於,在selector中android:drawable="@drawable/button_focus"引號中爲xml文件,此xml文件爲color類型,且在此color xml文件中spa
<color xmlns:android="http://schemas.android.com/apk/res/android"orm
android:color="@color/button_focus_color"> <!-- 注意此處android:color的位置 -->xml
</color>圖片
android:color="@color/button_focus_color"在color控件中。utf-8
方法一:填充button背景顏色的方法it
在factory_reset這個xml文件中,其具體xml文件爲:io
<?xml version="1.0" encoding="utf-8"?>sed
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"coding
android:layout_width="560px"
android:layout_height="348px"
android:background="#212121"
android:orientation="vertical"
android:layout_gravity="center_vertical|center_horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" > <!-- 怎樣設置 -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|bottom"
android:text="肯定要恢復出廠設置嗎?"
android:textColor="#e6e6e6"
android:textSize="34px"
android:paddingTop="68px"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal" >
<Button
android:id="@+id/bn1"
android:layout_width="520px"
android:layout_height="72px"
android:text="保存"
android:textSize="28px"
android:gravity="center_vertical|center_horizontal"
android:layout_marginBottom="18px"
android:layout_marginTop="60px"
android:background="@drawable/button_background_selector"
android:textColor="@drawable/button_text_selector"
/>
<Button
android:id="@+id/bn2"
android:layout_width="520px"
android:layout_height="72px"
android:text="取消"
android:textSize="28px"
android:gravity="center_vertical|center_horizontal"
android:background="@drawable/button_background_selector"
android:textColor="@drawable/button_text_selector"
/>
</LinearLayout>
</LinearLayout>
其中的Button,以第一個爲例:
<Button
android:id="@+id/bn1"
android:layout_width="520px"
android:layout_height="72px"
android:text="保存"
android:textSize="28px"
android:gravity="center_vertical|center_horizontal"
android:layout_marginBottom="18px"
android:layout_marginTop="60px"
android:background="@drawable/button_background_selector"
android:textColor="@drawable/button_text_selector"
/>
其中button_background_selector爲xml文件,可在res中新建drawable文件夾並將其放置到其中,具體爲
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" android:drawable="@drawable/button_focus" > </item>
<item android:drawable="@drawable/button_default" > </item>
</selector>
其中button_focus以及button_default也分別爲xml文件,放在drawalbe文件夾中
button_focus.xml的xml文件具體爲:
<?xml version="1.0" encoding="utf-8"?>
<color xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/button_focus_color">
</color>
button_default.xml的xml文件具體爲:
<?xml version="1.0" encoding="utf-8"?>
<color xmlns:android="http://schemas.android.com/apk/res/android"
android:color="@color/button_default_color">
</color>
其中的button_focus_color與button_default_color爲values文件夾中新建的color.xml文件中定義的,具體代碼以下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="button_focus_color">#004B64</color>
<color name="button_default_color">#3B3B3B</color>
<color name="text_focus_color">#ffffff</color>
<color name="text_default_color">#e6e6e6</color>
</resources>
方法二:採用9patch圖片作button背景圖片的方法
在factory_reset這個xml文件中,其具體xml文件爲:(跟方法一中的代碼是同樣的,方法二隻是改變了button_background_selector這個xml文件裏的東西)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="560px"
android:layout_height="348px"
android:background="#212121"
android:orientation="vertical"
android:layout_gravity="center_vertical|center_horizontal">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content" > <!-- 怎樣設置 -->
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center|bottom"
android:text="肯定要恢復出廠設置嗎?"
android:textColor="#e6e6e6"
android:textSize="34px"
android:paddingTop="68px"
/>
</LinearLayout>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:gravity="center_horizontal" >
<Button
android:id="@+id/bn1"
android:layout_width="520px"
android:layout_height="72px"
android:text="保存"
android:textSize="28px"
android:gravity="center_vertical|center_horizontal"
android:layout_marginBottom="18px"
android:layout_marginTop="60px"
android:background="@drawable/button_background_selector"
android:textColor="@drawable/button_text_selector"
/>
<Button
android:id="@+id/bn2"
android:layout_width="520px"
android:layout_height="72px"
android:text="取消"
android:textSize="28px"
android:gravity="center_vertical|center_horizontal"
android:background="@drawable/button_background_selector"
android:textColor="@drawable/button_text_selector"
/>
</LinearLayout>
</LinearLayout>
其中的Button,以第一個爲例:
<Button
android:id="@+id/bn1"
android:layout_width="520px"
android:layout_height="72px"
android:text="保存"
android:textSize="28px"
android:gravity="center_vertical|center_horizontal"
android:layout_marginBottom="18px"
android:layout_marginTop="60px"
android:background="@drawable/button_background_selector"
android:textColor="@drawable/button_text_selector"
/>
其中button_background_selector爲xml文件,可在res中新建drawable文件夾並將其放置到其中,具體爲:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_focused="true" android:drawable="@drawable/button_pressed" > </item>
<item android:drawable="@drawable/button_normal" > </item>
</selector>
因爲這裏給出了button_pressed跟button_normal這兩個9patch背景圖片,因此能夠直接用android:drawable=「兩張9patch圖片的位置」來改變button的背景。
其中在res中新建了drawable文件夾,並在裏邊放了button_pressed跟button_normal這兩個9patch圖片,以下圖所示:
button_normal.9.png button_pressed.9.png